加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用AngularJS在Firefox中更改请求标头时遇到问题

发布时间:2020-12-17 08:51:44 所属栏目:安全 来源:网络整理
导读:我的后端要求’Content-Type’请求标头正好是’application / json’.这是一个CORS请求,Chrome中的一切正常.来自开发人员工具网络标签源的确切标题: Content-Type: application/json 我使用$http.default.headers.post在AngularJS中设置了它,它在Chrome中运
我的后端要求’Content-Type’请求标头正好是’application / json’.这是一个CORS请求,Chrome中的一切正常.来自开发人员工具网络标签源的确切标题:
Content-Type: application/json

我使用$http.default.headers.post在AngularJS中设置了它,它在Chrome中运行良好.但它在Firefox中不起作用. Firefox发送此代码:

Content-Type: application/json; charset=UTF-8

我试图通过以下方式更改标题:

> settings $http.default.headers(for .post,.common)
>为一个请求设置自定义标头
>使用$http拦截器

所有这些方法都适用于Chrome,但不适用于Firefox.该请求包含数据.

如果我一起删除’Content-Type’标题,它仍然会被发送,但它是:

Content-Type: text/plain; charset=UTF-8

(这在Chrome和Firefox中都会发生).

这让我觉得浏览器强制标题:)
我怎样才能在Firefox中绕过这个?

Firefox有charset = UTF-8 hard-coded for string payloads.

但是你可以发送一个Blob

var r = new XMLHttpRequest();
r.open("POST",...);
r.send(new Blob(
 [JSON.stringify({a:1})],{type:"application/json"}
));

这也适用于角度$http XHR包装器:

$http({
    method: "POST",url: "/echo/json",headers: {
        "Content-Type": "application/json"
    },data: new Blob([JSON.stringify({
        a: 1
    })])
});

Fiddle

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读