由于CORS配置,AJAX请求失败

时间:2018-06-07 14:42:40

标签: ajax cors

我有以下配置:Apache运行PHP站点:80,node.js服务器公开API:3001。两者都在我的本地机器上运行。

当我尝试在节点服务器上对某个路径进行AJAX调用时,chrome控制台会返回臭名昭着的:

  

无法加载http://127.0.0.1:3001/myApiCall:请求的资源上没有“Access-Control-Allow-Origin”标头。因此,不允许原点“http://127.0.0.1”访问。

据我所知,127.0.0.1:3001与127.0.0.1:80不同,因此它是一个CORS调用。节点服务器使用以下CORS配置:

app.use(function(req, res, next) {
 res.header("Access-Control-Allow-Origin", "*");
 res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
 res.header("Access-Control-Allow-Methods: GET, POST, HEAD, OPTIONS, PUT, DELETE, PATCH");
 next();
});

AJAX电话:

$.ajax({
        url: 'http://127.0.0.1:3001/myApiCall',
        cors: true,
        success: function(response){
            // hooray
        },
        error: function(x, y, z){
            console.log(x);
            console.log(y);
            console.log(z);
        }
    });

到目前为止,这是17243个与CORS相关的问题之一。现在来了扭曲。 :)

如果我在Chrome网络标签中检查呼叫,我实际上看到返回的数据很好。基本上,节点服务器确实为调用返回了一些内容。但与此同时,Chrome控制台为我提供了“无法加载...”错误消息。

进一步信息:

  • 昨天工作。它没有今天,没有任何变化 - 畏缩。
  • 我安装了Chrome CORS扩展程序&启用(让它在昨天工作,今天不起作用 - 畏缩。)
  • 在PHP方面,我们发送请求的地方,我不需要配置其他任何东西 - 对吗?

任何帮助高度赞赏!

0 个答案:

没有答案