Chrome 与 Firefox - 为什么 CORS 标头的行为不同,我应该如何使用它们?

use*_*059 5 javascript ajax firefox jquery google-chrome

我正在使用 CORS 标头进行 Ajax 调用。简而言之,在 Firefox 中,一切都运行良好,在 Chrome 中我收到一个错误:"Refused to set unsafe header Access-Control-Request-Method",对于 Access-Control-Request-Headers 也是如此。

所以,我只是很困惑。就像,非常困惑。为了让 CORS 在 Chrome 和 Firefox 中正常工作,我必须做什么?

不过,我要说的奇怪之处在于,尽管出现了错误,Chrome 似乎还是执行了 Ajax 调用。

我只是总体感到困惑,我对 JavaScript 很陌生,对 CORS 也很陌生,只是想让这项工作正常进行。

PS - 所有这些都是通过 IntelliJ 进行本地开发,不确定,但这可能是一个因素。

聚苯硫醚。简短摘要:Firefox 中一切正常,Chrome 中出现错误,但它仍然可以正确执行请求。

购买力平价。这是我用于所有 Ajax 调用的代码。

function(uri, method, json){
    return $.ajax({
        url: orgProps.serverOrigin + ensurePrecedingSlash(uri),
        type: method,
        headers: (function(){
            var result = {
                "Access-Control-Request-Headers": [
                    "X-Requested-With",
                    "Authorization"
                ],
                "Access-Control-Request-Method": method
            };

            var token = jwt.getToken();
            if(token !== undefined && token !== null){
                result.Authorization = restoreBearerPrefix(token);
            }
            return result;
        })(),
        contentType: "application/json; charset=utf-8",
        data: (function(){
            if(json !== undefined) {
                return JSON.stringify(json);
            }
            return null;
        })()
    })
    .done(function(data, status, jqXHR){
        var token = jqXHR.getResponseHeader("Authorization");
        jwt.storeToken(token);
    });
Run Code Online (Sandbox Code Playgroud)