gpt4 book ai didi

angularjs - 未使用 Angular $http 设置 Content-Type header

转载 作者:行者123 更新时间:2023-12-03 06:38:41 29 4
gpt4 key购买 nike

我正在尝试使用 Angular $http 和以下代码发出跨域 POST 请求。

//I've tried setting and removing these http config options
$http.defaults.useXDomain = true;
delete $http.defaults.headers.common['X-Requested-With'];
$http.defaults.headers.common['Content-Type'] = 'application/x-www-form-urlencoded';

//Basic request, with some private headers removed
return $http({
method: 'POST',
//withCredentials:true,
headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
params: params,
url: url
});

预检 OPTIONS 请求收到 200 OK,但后续 POST 收到 400 Bad Request 响应。查看 Chrome 调试窗口中的跟踪,我没有看到 Content-Type: application/x-www-form-urlencoded; POST 的 charset=UTF-8 header 。我认为这就是服务器返回错误请求响应的原因。

我正在设置一些其他自定义 header ,我在上面的代码中省略了这些 header ,并且它们可以正常发送和显示。

我还应该提到,我可以使用 Chrome 的 Advanced Rest Client 应用程序发出此请求并收到正确的响应。 (访问 token )

我也尝试过直接执行 XMLHttpRequest(),但遇到了同样的错误。

知道为什么我的 Content-Type header 没有被设置吗?

最佳答案

如果您不发送任何数据,我不确定是否会发送 Content-Type header 。添加一个 data 对象并尝试一下:

return $http({
method: 'POST',
//withCredentials:true,
headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
data: data,
url: url
});

此外,通常在帖子中使用 data 而不是 params (get)。

如果需要,您还可以引用这个问题,其中包含有关如何转换数据的更多信息:How can I post data as form data instead of a request payload?

关于angularjs - 未使用 Angular $http 设置 Content-Type header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24895290/

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