Javascript 在发布到节点服务器时允许跨域
我正在尝试使用Restify将字符串发布到节点服务器。我的“post”请求如下所示: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
// 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
文件本身。就是这样!非常感谢。