Javascript 带节点的CORS问题
所以我正在设置一个允许跨域请求的应用程序。我在这篇文章中使用了多种方法 然而,我得到一个错误,我似乎无法解决。以下是我正在使用的方法(并不是说我尝试了概述的3种方法——它们都给出了相同的错误) 这仍然给了我一个错误:Javascript 带节点的CORS问题,javascript,node.js,cors,Javascript,Node.js,Cors,所以我正在设置一个允许跨域请求的应用程序。我在这篇文章中使用了多种方法 然而,我得到一个错误,我似乎无法解决。以下是我正在使用的方法(并不是说我尝试了概述的3种方法——它们都给出了相同的错误) 这仍然给了我一个错误: XMLHttpRequest cannot load http://localhost:3000/blah. Request header field Content-Type is not allowed by Access-Control-Allow-Headers. 如果
XMLHttpRequest cannot load http://localhost:3000/blah. Request header field Content-Type is not allowed by Access-Control-Allow-Headers.
如果我注释掉上面的代码,我会得到预期的不允许的错误,这似乎表明该代码正确地处理了请求。我还重新键入了内容类型请求,以确保没有粘贴奇数字符。有什么线索吗?您有两个
访问控制允许标题
标题。最后一个会赢的
您可能需要一个带有逗号分隔列表值的
访问控制允许标头标头。您有两个访问控制允许标头标头。最后一个会赢的
您可能需要一个带有逗号分隔列表值的Access Control Allow Headers
头。使用cors插件,这样更简单,无需手动设置res.header
在此处获取插件:
REST API代码示例:
'use strict';
var express = require('express'),
cors = require('cors'),
port = process.env.PORT || 3000,
connect = require('connect'),
app = express();
app.use(connect.bodyParser()); //For POST method JSON form data
//GET method
app.get('/books', cors(), function(req, res){
//send JSON etc
res.json({});
});
//POST method
app.post('/books/', cors(), function(req, res){
var book = req.body;
//insert book to DB etc
//send result back to client
res.send(book);
});
//start server on port 3000
if(!module.parent){
app.listen(port, function(){
console.log('Express server listening on port ' + port + '.');
});
}
现在,您可以从任何位置、端口等访问REST API,cheers使用cors插件,这样更简单,无需手动设置res.header
在此处获取插件:
REST API代码示例:
'use strict';
var express = require('express'),
cors = require('cors'),
port = process.env.PORT || 3000,
connect = require('connect'),
app = express();
app.use(connect.bodyParser()); //For POST method JSON form data
//GET method
app.get('/books', cors(), function(req, res){
//send JSON etc
res.json({});
});
//POST method
app.post('/books/', cors(), function(req, res){
var book = req.body;
//insert book to DB etc
//send result back to client
res.send(book);
});
//start server on port 3000
if(!module.parent){
app.listen(port, function(){
console.log('Express server listening on port ' + port + '.');
});
}
现在,您可以从任何位置、端口等访问RESTAPI,干杯