javascript - 来自 IE 或 Firefox 的 CORS 请求中没有 Referer header

标签 javascript internet-explorer firefox cors preflight

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

在 Chrome 中,这按预期工作 - OPTIONS 预检请求被发送到服务器,服务器用访问控制 header 响应,POST 请求被发送。当我尝试在 IE 或 Firefox 中执行此操作时,没有随 OPTIONS 请求发送引用,因此我无法添加 access-control-allow-origin header (因为这是通过编程完成的)。

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 中的 header 如下: Chrome headers

Firefox 中的 header 如下: Firefox headers

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

最佳答案

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

关于javascript - 来自 IE 或 Firefox 的 CORS 请求中没有 Referer header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32184696/

相关文章:

javascript - 比较一组对象中的对象

javascript - jQuery PHP 跨域请求问题

javascript - 单击后如何禁用搜索按钮

javascript - 为什么这个菜单在 IE 中会出现问题?紧急求救

python - 连接被拒绝且轮询更改失败 : NetworkError when attempting to fetch resource error with Selenium GeckoDriver and Firefox

javascript - 如何在页面加载时启用 Extjs 过滤器

internet-explorer - Internet Explorer 9 不为内嵌附件使用文件名

css - 当元素具有渐变过滤器时,DD Roundies 在 IE 中不起作用

javascript - Firefox 26 的默认下载目录

javascript - FCM 数据消息无法在 Firefox 中加载