Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript模块中的jQuery ajax_Jquery_Ajax_Jquery Deferred - Fatal编程技术网

javascript模块中的jQuery ajax

javascript模块中的jQuery ajax,jquery,ajax,jquery-deferred,Jquery,Ajax,Jquery Deferred,我正在尝试实现一个帮助器javascript模块,该模块将进行ajax调用 这是实现jQuery ajax承诺的正确方法吗 我知道,$.ajax已经返回了一个承诺,在这种情况下,将dfd变量声明为deferred是否有意义,将$.ajax承诺分配给它并返回它?这行吗,还是简单一点 window.my = window.my || {}; my = function() { 'use strict'; var makeCall = function(serviceUrl, obje

我正在尝试实现一个帮助器javascript模块,该模块将进行ajax调用

这是实现jQuery ajax承诺的正确方法吗

我知道,
$.ajax
已经返回了一个承诺,在这种情况下,将
dfd
变量声明为deferred是否有意义,将$.ajax承诺分配给它并返回它?这行吗,还是简单一点

window.my = window.my || {};
my = function() {
    'use strict';
    var makeCall = function(serviceUrl, object, headers) {
        var dfd = $.ajax({
            url: serviceUrl,
            type: 'POST',
            data: JSON.stringify(object),
            contentType: 'application/json',
            headers: headers
        });
        return dfd.promise();
    };
    return {
        makeCall: makeCall
    };
}();

JavaScript是动态类型化的,您不需要将变量声明为类型

 var dfd = "wibble"; // string
 dfd = 56; // now it's a number

 dfd = $.ajax( /*etc*/); // now it's a reference to a Deferred object
把你的手拿开

var dfd = $.Deferred();

它没有任何用途

需要什么
var dfd=$.Deferred()。。。
$.ajax()
本身返回的值是一个promise,因此无需调用
dfd.promise()
agaibI进行更改。所以基本上我也只能说:
返回dfd插入的
返回dfd.promise()当ajax返回承诺时?