从ajax延迟响应中获取jsonObject

时间:2015-06-29 12:12:41

标签: javascript jquery ajax angularjs deferred

我使用Ajax将项目发送到SharePoint列表,完成此操作后,我想推送我收到的jsonObject以响应项目列表。

AppController.js中的

   $scope.addListItem = function(listItem){
    $.when(SharePointJSOMService.addListItem($scope, ListName, listItem))
        .done(function (jsonObject) {

            //$scope.items.push(jsonObject);

            if (!$scope.$$phase) {
                $scope.$apply();
            }

        })

        .fail(function (err) {
            console.info(JSON.stringify(err));
        });
};

Ajax调用

    jQuery.ajax({
        url: restQueryUrl,
        type: "POST",
        data: JSON.stringify(listItem),
        headers: {
            "accept": "application/json;odata=verbose",
            "content-type": "application/json;odata=verbose",
            "X-RequestDigest": $("#__REQUESTDIGEST").val()
        },
        success: function (data, textStatus, xhr) {
            deferred.resolve(JSON.parse(data));
        },
        error: function (xhr, textStatus, errorThrown) {
            deferred.reject(JSON.stringify(xhr));
        }
    });

我希望这足以让你能够帮助我。 基本上我需要知道的是如何获得从ajax调用返回的数据

1 个答案:

答案 0 :(得分:0)

不用担心,我明白了。我被卷入了使用' JSON.parse'方法,实际上我所要做的就是:

var id = data.d.ID;
var created = data.d.Created;

deferred.resolve(id, created);

我想我必须创建一个新的' var'对于我想在resolve方法中传递的每个属性,但这很好