小编典典

如何将数据发布为表单数据而不是请求有效载荷?

angularjs

在下面的代码中,AngularJS
$http方法调用URL,然后将xsrf对象作为“请求有效负载”提交(如Chrome调试器网络标签中所述)。jQuery
$.ajax方法执行相同的调用,但是将xsrf提交为“表单数据”。

如何使AngularJS将xsrf提交为表单数据而不是请求有效载荷?

var url = 'http://somewhere.com/';
var xsrf = {fkey: 'xsrf key'};

$http({
    method: 'POST',
    url: url,
    data: xsrf
}).success(function () {});

$.ajax({
    type: 'POST',
    url: url,
    data: xsrf,
    dataType: 'json',
    success: function() {}
});

阅读 316

收藏
2020-07-04

共1个答案

小编典典

需要将以下行添加到传递的$ http对象中:

headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}

并且传递的数据应转换为URL编码的字符串:

> $.param({fkey: "key"})
'fkey=key'

所以你有这样的事情:

$http({
    method: 'POST',
    url: url,
    data: $.param({fkey: "key"}),
    headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
})

发件人:https
:
//groups.google.com/forum/#!msg/angular/5nAedJ1LyO0/4Vj_72EZcDsJ

2020-07-04