本地localhost跨域连接nodejs服务器数据时Chrome报错:
XMLHttpRequest cannot load http://24px.cc/……. No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://localhost’ is therefore not allowed access.
解决办法:
//app.js
app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
res.header("X-Powered-By",' 3.2.1')
res.header("Content-Type", "application/json;charset=utf-8");
next();
});
也可以直接引入cors
npm install cors
//app.js
var cors = require('cors');
app.use(cors());
复习一下header头三件套
header(‘Access-Control-Allow-Origin :’.$origin); //允许的域名( * 所有域)
header(‘Access-Control-Allow-Methods : POST’); //允许的方法
header(‘Access-Control-Allow-Headers : x-requested-with , content-type’); //服务器支持的头信息
参考:
HTTP访问控制(CORS)
从原理分析CORS——我们到底是怎么跨域的
HTTP消息头(HTTP headers)-常用的HTTP请求头与响应头