jQuery $ .ajax(),将成功数据传递给单独的函数

Nic*_*ard 22 javascript ajax jquery callback

我正在使用jQuery $ .ajax()函数.我把它放到一个父函数中,它将一些值传递给ajax函数.我想做的是,有一个用户定义的回调函数,它获取从ajax成功函数传入的数据参数.

这是我的想法会起作用,但它不是:

testFunc = function(str, callback) {
    // Send our params
    var data = 'some data to send';
    $.ajax({
        type: 'POST',
        url: 'http://www.myurl.com',
        data: data,
        success: callback
    });
}
Run Code Online (Sandbox Code Playgroud)

然后我希望能够调用该函数,并传入我的自定义函数,以便我可以使用该函数内部的成功函数数据:

testFunc('my string data', function(data){
    alert(data);
});
Run Code Online (Sandbox Code Playgroud)

我希望这与以下相同:

testFunc = function(str, callback) {
    // Send our params
    var data = 'some data to send';
    $.ajax({
        type: 'POST',
        url: 'http://www.myurl.com',
        data: data,
        success: function(data) {
            alert(data);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*sen 34

对我来说很好:

<script src="/jquery.js"></script>
<script>
var callback = function(data, textStatus, xhr)
{
    alert(data + "\t" + textStatus);
}

var test = function(str, cb) {
    var data = 'Input values';
    $.ajax({
        type: 'post',
        url: 'http://www.mydomain.com/ajaxscript',
        data: data,
        success: cb
    });
}
test('Hello, world', callback);
</script>
Run Code Online (Sandbox Code Playgroud)


iPa*_*h ツ 21

您可以使用关键字访问自定义数据,传递给$ .ajax()函数:

    $.ajax({
        // ... // --> put ajax configuration parameters here
        yourCustomData: {param1: 'any value', time: '1h24'},  // put your custom key/value pair here
        success: successHandler
    });

    function successHandler(data, textStatus, jqXHR) {
        alert(this.yourCustomData.param1);  // shows "any value"
        console.log(this.yourCustomData.time);
    }
Run Code Online (Sandbox Code Playgroud)