我正在向node.js上的HTTPS服务器发出请求,如下所示,我得到了:
' No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' https://ku6sn0zj.apps.lair.io'因此不允许访问。响应的HTTP状态代码为502.' 错误。
我没有正确设置标题吗?当我在回调开始时放置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发送请求:
$.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, 和快递应用程序默认为3000,
oi68.tinypic.com/15gxg0x.jpg这些是标题。不在应用程序设置中指定端口是我获得响应标头的唯一方法。