ExpressJS 服务器设置不正确 headers
ExpressJS server is not setting correct headers
我在端口 8080 上创建了一个 ExpressJS 服务器,它将接收来自端口 8889 上另一个 Web 应用 运行 的请求。我已经设置了适当的 headers,但浏览器控制台仍然给我以下:
XMLHttpRequest cannot load http://localhost:8080/. A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true. Origin 'http://localhost:8889' is therefore not allowed access.
服务端的代码写在这里:
var express = require('express');
var app = express();
app.set('port', 8080);
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin","http://localhost:8889");
res.header("Access-Control-Allow-Credentials", true);
res.header("Content-Type", "application/json");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.get('/', function (req, res) {
res.send(JSON.stringify(json));
});
var server = app.listen(app.get('port'), function () {
var host = 'localhost';
var port = '8080';
console.log('Server listening at http://%s:%s', host, port);
});
请求代码在这里:
function getJSON(callback){
return http.get({
host: 'localhost',
port: 8080,
}, function (response){
var body = '';
response.on('data', function (d) {
body += d;
});
response.on('end', function(){
callback(JSON.parse(body));
});
}).on('error', function (err){console.log('couldnt get credentials');});
}
显然没有使用通配符。任何人都可以阐明正在发生的事情吗?
我刚刚结束使用找到的 CORS 节点模块 here,它最终解决了这个问题。
我在端口 8080 上创建了一个 ExpressJS 服务器,它将接收来自端口 8889 上另一个 Web 应用 运行 的请求。我已经设置了适当的 headers,但浏览器控制台仍然给我以下:
XMLHttpRequest cannot load http://localhost:8080/. A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true. Origin 'http://localhost:8889' is therefore not allowed access.
服务端的代码写在这里:
var express = require('express');
var app = express();
app.set('port', 8080);
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin","http://localhost:8889");
res.header("Access-Control-Allow-Credentials", true);
res.header("Content-Type", "application/json");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.get('/', function (req, res) {
res.send(JSON.stringify(json));
});
var server = app.listen(app.get('port'), function () {
var host = 'localhost';
var port = '8080';
console.log('Server listening at http://%s:%s', host, port);
});
请求代码在这里:
function getJSON(callback){
return http.get({
host: 'localhost',
port: 8080,
}, function (response){
var body = '';
response.on('data', function (d) {
body += d;
});
response.on('end', function(){
callback(JSON.parse(body));
});
}).on('error', function (err){console.log('couldnt get credentials');});
}
显然没有使用通配符。任何人都可以阐明正在发生的事情吗?
我刚刚结束使用找到的 CORS 节点模块 here,它最终解决了这个问题。