wih*_*rek 7 firefox post content-type http-headers angularjs
我的后端要求'Content-Type'请求标头正好是'application/json'.这是一个CORS请求,Chrome中的一切正常.来自开发人员工具网络标签源的确切标题:
Content-Type: application/json
Run Code Online (Sandbox Code Playgroud)
我在AngularJS中用$ http.default.headers.post设置它,它在Chrome中运行良好.但它在Firefox中不起作用.Firefox发送此代码:
Content-Type: application/json; charset=UTF-8
Run Code Online (Sandbox Code Playgroud)
我试图通过以下方式更改标题:
所有这些方法都适用于Chrome,但不适用于Firefox.该请求包含数据.
如果我一起删除'Content-Type'标题,它仍然会被发送,但它是:
Content-Type: text/plain; charset=UTF-8
Run Code Online (Sandbox Code Playgroud)
(这种情况发生在Chrome和Firefox中).
这让我觉得浏览器强制标题:)我怎样才能在Firefox中绕过这个?
Firefox已charset=UTF-8 对字符串有效负载进行了硬编码.
但是你可以发送一个Blob代替:
var r = new XMLHttpRequest();
r.open("POST", ...);
r.send(new Blob(
[JSON.stringify({a:1})],
{type:"application/json"}
));
Run Code Online (Sandbox Code Playgroud)
这也适用于角度$httpXHR包装器:
$http({
method: "POST",
url: "/echo/json",
headers: {
"Content-Type": "application/json"
},
data: new Blob([JSON.stringify({
a: 1
})])
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4288 次 |
| 最近记录: |