CORS - 状态200但Chrome devtools控制台出错

时间:2017-11-17 16:06:30

标签: javascript xmlhttprequest cors serverless serverless-framework-offline

我遇到CORS问题,问题是我的代码已执行(状态200 ),但我在Google Chrome开发者控制台中出错。

我的代码:

function callUrl(url) {
    var xmlhttp = null;

    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    if (xmlhttp !== null) {
        xmlhttp.open("POST", url, true);
        xmlhttp.withCredentials = true;
        xmlhttp.send(JSON.stringify({
        }));
    } else {
        console.error("Your browser does not support XMLHTTP.");
    }
}

callUrl('https://www.website.com/tracking?etc...');
  

XMLHttpRequest无法加载https://www.website.com/tracking?该   响应中'Access-Control-Allow-Origin'标头的值必须为   当请求的凭据模式为时,不是通配符'*'   '包括'。因此不允许来源“http://localhost:8888”   访问。由...发起的请求的凭据模式   XMLHttpRequest由withCredentials属性控制。

服务器配置:

"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Credentials": true,

1 个答案:

答案 0 :(得分:1)

在Firefox中,你会得到这个错误...即使它正在工作并获得状态200.

您可以在https://developer.mozilla.org/en-US/docs/Web/HTTP/Server-Side_Access_Control中阅读相关内容。

如果你使用xmlhttp.withCredentials = true;您需要指定PHP代码中允许的特定来源。如果任何来源可以调用您的API ...删除此属性,这样您就可以使用" Access-Control-Allow-Origin":" *"