gpt4 book ai didi

node.js - ExpressJS 服务器未设置正确的 header

转载 作者:太空宇宙 更新时间:2023-11-04 02:22:59 25 4
gpt4 key购买 nike

我在端口 8080 上创建了一个 ExpressJS 服务器,它将接收来自在端口 8889 上运行的另一个 Web 应用程序的请求。我已经设置了适当的 header ,但浏览器控制台仍然提供以下内容:

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 Node 模块 here最终解决了这个问题。

关于node.js - ExpressJS 服务器未设置正确的 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32149890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com