来自IE或Firefox的

时间:2015-08-24 14:22:21

标签: javascript internet-explorer firefox cors preflight

我正在尝试向服务器发送CORS POST请求。

在Chrome中,这可以正常工作 - OPTIONS预检请求发送到服务器,服务器响应访问控制标头,发送POST请求。当我尝试在IE或Firefox中执行此操作时,没有使用OPTIONS请求发送引用,因此我无法添加access-control-allow-origin标头(因为这是以编程方式完成的)。

Javascript是:

    $.ajax({
        url: $(this).attr('href'),
        type: 'POST',
        xhrFields: {
            withCredentials: true,
        },
        contentType: 'application/json; charset=utf-8;',
        data: JSON.stringify(data),
        success: function (response) {
            alert(response);
        },
    });
    return false;
});

Chrome中的标题如下: Chrome headers

Firefox中的标题如下: Firefox headers

有没有办法保证推荐人将与OPTIONS预检请求一起发送?如果没有 - 是否有另一种获取引用URL的方法,以便我可以添加allow origin header?

1 个答案:

答案 0 :(得分:2)

通过使用与预检请求一起发送的Origin标头解决了这个问题。因此,如果Origin URL是可接受的主机之一,请使用原始URL添加access-control-allow-origin标头。