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

angularjs – 没有使用Angular $http设置Content-Type标头

发布时间:2020-12-17 07:20:42 所属栏目:安全 来源:网络整理
导读:我正在尝试使用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['Cont
我正在尝试使用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; charset = POST的UTF-8标头.我假设这就是服务器返回错误请求响应的原因.

我正在设置一些我从上面的代码中省略的其他自定义标题,并且它们正在被发送并显示正常.

我还要提一下,我可以使用Chrome的Advanced Rest Client应用程序发出此请求并收到正确的回复. (访问令牌)

我也试过做一个直接的XMLHttpRequest(),但我得到了同样的错误.

有关为什么我的Content-Type标头没有被设置的任何见解?

如果您不发送任何数据,我不确定是否会发送Content-Type标头.添加数据对象并尝试:
return $http({
    method: 'POST',data: data,url: url
});

此外,通常使用帖子您使用数据而不是params(get).

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

(编辑:李大同)

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

    推荐文章
      热点阅读