Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在发布到节点服务器时允许跨域_Javascript_Node.js_Restify - Fatal编程技术网

Javascript 在发布到节点服务器时允许跨域

Javascript 在发布到节点服务器时允许跨域,javascript,node.js,restify,Javascript,Node.js,Restify,我正在尝试使用Restify将字符串发布到节点服务器。我的“post”请求如下所示: // AJAX image save function saveImage() { var xmlhttp = new XMLHttpRequest(); var url = 'http://127.0.0.1:7070/server.js'; var params = document.querySelector('img').src; console.log(pa

我正在尝试使用Restify将字符串发布到节点服务器。我的“post”请求如下所示:

// AJAX image save
function saveImage() {
    var xmlhttp = new XMLHttpRequest();
    var url     = 'http://127.0.0.1:7070/server.js';
    var params  = document.querySelector('img').src;

    console.log(params);

    xmlhttp.open("POST", url, true);

    //Send the proper header infomation along with the request
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
        {
            var response = xmlhttp.responseText;

            // Callback
            if(response == 'false')
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
    }
    xmlhttp.send(params); 
}
然后在服务器上,我有以下设置:

// Setup server.
var restify = require('restify'),
    imageSave = require('save')('image');
var server = restify.createServer({ name: 'imageCapture'});
    server.use(restify.acceptParser(server.acceptable));

server.listen(7070, '127.0.0.1', function() {
  console.log('%s listening at %s', server.name, server.url);
});

server
  .use(restify.fullResponse())
  .use(restify.bodyParser())

// Saving bit...
server.post('/images', function (req, res, next) {

    console.log(req, res);

    res.setHeader('Access-Control-Allow-Origin','*');

    imageSave.create({ image: req.params.name }, function (error, image) {

        res.send(201, image)
    })
})

在服务器端Javascript中是否还有其他位置可以设置头?这就是接受post请求吗?

off-为了只发布而不响应(跨域边界)-您不需要设置任何标题。您可能需要设置和。谢谢,这是我遇到的错误:XMLHttpRequest无法加载。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“”。@JohnRobertPett请求还应指向
server.js
中定义的路由之一,例如
'http://127.0.0.1:7070/images“
而不是
server.js
文件本身。就是这样!非常感谢。