在 AngularJS 中重写 jQuery Ajax 调用
Posted
技术标签:
【中文标题】在 AngularJS 中重写 jQuery Ajax 调用【英文标题】:Rewrite jQuery Ajax call in AngularJS 【发布时间】:2012-07-22 08:52:30 【问题描述】:对于这个 jQuery ajax POST 是否有 AngularJS 等效调用,使用 contentType
和 setRequestHeader
?
$.ajax(
url: "http://localhost/songs",
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
beforeSend: function (xhr)
xhr.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/sharepoint/soap/UpdateListItems");
,
success: function(data)
console.log(data);
);
【问题讨论】:
【参考方案1】:您可能想要使用$http 或$resource 服务。在 $http 文档中,您可以看到关于 Setting HTTP Headers 的部分来设置 SOAPAction,默认内容类型将设置为 json(尽管您也应该能够覆盖它)。
这可能会让您入门,我有兴趣查看其他答案以获得更好的方法,因为这似乎有限。
var module = angular.module('myApp', []);
module.config(function ($httpProvider)
$httpProvider.defaults.headers.post['SOAPAction'] = 'http://schemas.microsoft.com/sharepoint/soap/UpdateListItems';
);
function myController($http)
var data = 'value1': 1, 'value2': 2 ;
$http.post('/songs', data).success(function (data)
console.log(data);
);
基于this thread,我不相信您可以为每个调用设置不同的标头,但看起来change 可能会进入允许它的$resource 服务。
更新:一定在文档中遗漏了它,但您绝对可以使用$http
per this post 为每个调用设置不同的操作,如下所示:
var data = 'value1': 1, 'value2': 2 ;
$http.post('/songs', data, headers: 'SOAPActions': 'http://schemas.microsoft.com/sharepoint/soap/UpdateListItems')
.success(function (data)
console.log(data);
);
【讨论】:
以上是关于在 AngularJS 中重写 jQuery Ajax 调用的主要内容,如果未能解决你的问题,请参考以下文章
我们应该将 jQuery 与 AngularJS 一起使用吗? [关闭]
在AngularJS中使用Node for Angular HTML5 Mode重写IIS URL