Javascript node.js https跨源请求
我向node.js上设置的HTTPS服务器发出请求,如下所示,我得到: 请求的资源上没有“Access Control Allow Origin”标头。因此,不允许访问源“”。响应的HTTP状态代码为502。'错误 我没有正确设置标题吗?当我将Javascript node.js https跨源请求,javascript,ajax,node.js,https,cross-domain,Javascript,Ajax,Node.js,Https,Cross Domain,我向node.js上设置的HTTPS服务器发出请求,如下所示,我得到: 请求的资源上没有“Access Control Allow Origin”标头。因此,不允许访问源“”。响应的HTTP状态代码为502。'错误 我没有正确设置标题吗?当我将console.log放在回调的开头时,服务器上没有指示尝试了请求。我尝试的其他方法是在writeHead(statusCode,{here go them headers})中设置标题 var server = https.createServer(op
console.log
放在回调的开头时,服务器上没有指示尝试了请求。我尝试的其他方法是在writeHead(statusCode,{here go them headers})中设置标题强>
var server = https.createServer(options, function(req, res) {
res.setHeader('Access-Control-Allow-Origin', 'https://ku6sn0zj.apps.lair.io'); // client address
res.setHeader('Access-Control-Allow-Methods', 'POST');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With, content-type');
res.setHeader('Access-Control-Allow-Credentials', true);
if (req.method == 'POST') {
req.on('data', function(data) {
data = data + '';
data = data.split('&');
if(data[0].slice(7) == 'login'){
var credentials = {};
credentials.username = data[1].slice(9);
credentials.password = data[2].slice(9);
game.foo(credentials.username, credentials.password, function(err, response) {
if (err) {
console.log(err);
} else if (response === true) { //password match
var token = foo()
res.writeHead(200);
res.end(token);
事情还在继续,但并不那么重要。
现在,我使用AJAX从node express应用程序发送一个请求,如下所示:
$.ajax({
type: "POST",
url: 'https://94jzlodc.apps.lair.io', //server address
data: {
action: 'login',
username: $("#username").val(),
password: $("#password").val()
},
statusCode: {*here comes response handling*}
})
http服务器侦听端口8000,
而express应用程序的默认值为3000
这些是标题。在应用程序设置中不指定端口是我获取响应头的唯一方法。收到请求时,您会看到哪些响应头?我更新了帖子,不确定您是否从中获得了备忘录。我将非常感谢您的帮助。“删除答案”评论中的一个家伙建议在sourcelair基础设施中可能存在代理集成。我是否应该询问他们对此的支持?