Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js 502未指定访问控制允许来源_Javascript_Node.js - Fatal编程技术网

Javascript Node.js 502未指定访问控制允许来源

Javascript Node.js 502未指定访问控制允许来源,javascript,node.js,Javascript,Node.js,我是Node.JS新手,希望构建一个基本的API。这里的问题是,每当我发出HTTP请求时,就会收到此错误消息 请求的资源上存在“Access Control Allow Origin”标头。因此,不允许访问源“”。响应的HTTP状态代码为502 代码如下: var server = https.createServer(options, function(req, res) { res.setHeader('Access-Control-Allow-Origin', 'https://l

我是Node.JS新手,希望构建一个基本的API。这里的问题是,每当我发出HTTP请求时,就会收到此错误消息

请求的资源上存在“Access Control Allow Origin”标头。因此,不允许访问源“”。响应的HTTP状态代码为502

代码如下:

var server = https.createServer(options, function(req, res) {
    res.setHeader('Access-Control-Allow-Origin', 'https://localhost:8001'); // 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) == 'id'){
                var credentials = {};
                credentials.username = data[1].slice(9);
                credentials.password = data[2].slice(9);
                api.login(credentials.username, credentials.password, function(err, response) {
                    if (err) {
                        console.log(err);
                    } else if (response === true) {
                        var token = success()
                        res.writeHead(200);
                        res.end(token);

我做错什么了吗

访问控制允许源位于“https”中,但您正在从“http”请求502是坏网关。如果您的节点服务器前面有一个像Nginx这样的反向代理,那么它的配置可能有问题。如果您手动尝试该请求(仅在浏览器中,不使用AJAX),是否有效?(是的,
http
vs.
https
也很重要。)访问控制允许源代码位于“https”中,但您从“http”请求502是坏网关。如果您的节点服务器前面有一个像Nginx这样的反向代理,那么它的配置可能有问题。如果您手动尝试该请求(仅在浏览器中,不使用AJAX),是否有效?(是的,
http
https
也会起作用。)