【问题标题】:Rewrite jQuery Ajax call in AngularJS在 AngularJS 中重写 jQuery Ajax 调用
【发布时间】:2012-07-22 08:52:30
【问题描述】:

对于这个 jQuery ajax POST 是否有 AngularJS 等效调用,使用 contentTypesetRequestHeader

$.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);
    }
});

【问题讨论】:

    标签: ajax jquery angularjs


    【解决方案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);
        }); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 2015-12-20
      • 1970-01-01
      • 2016-08-21
      • 2011-07-05
      • 2013-07-01
      • 1970-01-01
      相关资源
      最近更新 更多