3

我正在尝试向服务器发送 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中的标头如下: 铬标头

Firefox 中的标头如下: 火狐标头

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

4

1 回答 1

2

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

于 2015-08-24T14:41:48.160 回答