通过$_POST将数组传递给我的PHP,然后尝试从中恢复并在foreach中使用它。
通过$_POST将数组传递给我的PHP,然后尝试从中恢复并在foreach中使用它。
在下面的代码中,AngularJS的$http方法调用URL,将xsrf对象作为“Request Payload”提交(正如Chrome调试器网络选项卡中所描述的那样)。jQuery的$.ajax方法执行相同的调用,但将xsrf作为“Form Data”提交。我该如何让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() {} });
admin 更改状态以发布 2023年5月21日
如果您不想在解决方案中使用jQuery,您可以尝试这个解决方案。 解决方案从这里获得。
$http({ method: 'POST', url: url, headers: {'Content-Type': 'application/x-www-form-urlencoded'}, transformRequest: function(obj) { var str = []; for(var p in obj) str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); return str.join("&"); }, data: xsrf }).success(function () {});
需要添加下面的行到传递给$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
更新
为了使用AngularJS V1.4添加的新服务,请参考: