gpt4 book ai didi

javascript - Chrome 和 Firefox POST 调用的内容类型差异

转载 作者:行者123 更新时间:2023-11-29 15:25:05 25 4
gpt4 key购买 nike

下面是我对 Rest API 的调用。它只是更大脚本的一部分。

SomeServiceService.addNewCall = function(data)
{

deferred = $q.defer();
addNewPaymentMethodsServiceCall = $http({
url: rootUrl + 'user/v1/something',
method: 'POST',
data: data,
headers: {
'Content-Type': 'application/json',
'Accept-Language': 'en-us'
}
}).success(function(response){
deferred.resolve(response);
}).error(function(response,status){
response.status= status;
deferred.reject(response);
});
return deferred.promise;
};

我遇到的问题是 chrome 和 firefox 中 Content-Type 的区别。

在 chrome 中

Accept-Language:en-US
Cache-Control:no-cache
Content-Type:application/json
If-Modified-Since:Mon, 26 Jul 1997 05:00:00 GMT
Origin:https://mydomain
Pragma:no-cache
Referer:mydomain/users/app/
User-Agent:Mozilla/5.0(Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143
Safari/537.36

在 Firefox 中

Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language en-US
Cache-Control no-cache
Connection keep-alive
Content-Length 157
Content-Type application/json; charset=UTF-8
Host mydomain
If-Modified-Since Mon, 26 Jul 1997 05:00:00 GMT
Pragma no-cache
Referer https://mydomain/users/app/
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:43.0) Gecko/20100101 Firefox/43.0

即使在 ajax 调用中我明确声明 Content-typeapplication/json firefox 添加了 charset-UTF-8这会中断我的 API 调用,因为 API 仅支持 application/json

如何让 firefox 不改变 Content-Type?这只发生在 POST、PUT 上。

如有任何建议或帮助,我们将不胜感激。

最佳答案

上面昆汀的回答是正确的:

You should really fix the API. In 2016 it should be able to cope with having a parameter on the content-type.

我们今天遇到了同样的问题并通过更改 API 解决了它:我们检查内容类型是否包含而不是检查内容类型等于“application/json”/em> 那个字符串。

特定代码是特定于语言的,但是对于 Python(使用 Falcon REST 框架)来说,这是替换的问题

if req.content_type == 'application/json':

if 'application/json' in req.content_type:

关于javascript - Chrome 和 Firefox POST 调用的内容类型差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40028760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com