簡體   English   中英

如何將參數傳遞給 jQuery $.getJSON 回調方法?

[英]How can I pass parameters to a jQuery $.getJSON callback method?

我正在嘗試使用 jQuery 通過Ajax/$.getJSON調用一些自定義 API。

我正在嘗試將自定義值傳遞到 Ajax 回調方法中,但該值並未傳遞,實際上已被覆蓋。 這是我的代碼:

var locationType = 3;
var url = 'blah blah blah' + '&locationType=' + locationType;

$("#loading_status").show();

$.getJSON(url, null, function(results, locationType) {
    searchResults(results, locationType)
});

在我使用 AJAX 調用 URL 之前, locationType的值為3 但是在調用成功返回數據后, locationType的值現在是success 這是因為回調方法簽名是:

callback(data, textStatus) 請求成功時執行的回調函數。

如何將 1 個或多個參數傳遞給回調方法?

扭曲函數,例如

function getResults(locationType) {
    $.getJSON(url, null, function(results) {
        searchResults(results, locationType)
    });
}

但是在您的特定情況下,您甚至不必傳遞它,您可以直接在回調中訪問該值。

您不需要傳入它,只需引用您已有的變量,如下所示:

var locationType = 3;
var url = 'blah blah blah' + '&locationType=' + locationType;
$("#loading_status").show();
$.getJSON(url, null, function(results) {
    searchResults(results, locationType)
});

此外,如果您沒有數據對象,則無需傳遞null ,它是一個可選參數,jQuery 會檢查第二個參數是否為函數,因此您可以這樣做:

$.getJSON(url, function(results) {
    searchResults(results, locationType)
});

您可以使用.ajax方法:

var locationType = 3;
var url = 'blah blah blah' + '&locationType=' + locationType;
$.ajax({
    url: url,
    context: { lt: locationType },
    success: function(results) {
        searchResults(results, this.lt);    
    }
});

如果您想在回調中使用locationType (其值為3 ),只需使用

function(results) { .....

多虧了closureslocationType將在回調中自動可用。

可以試試:

function getResults(locationType) {
    $.getJSON(url, {p1:'xxx', p2: 'yyy'}, function(results) {
        searchResults(results, locationType)
    });
}
$.getJSON("url",
        "//here you can define your id, secure key to check data in your console, if you don't have condition for id and secure key just remove the secure key part."
        {secure_key:"noaccess"}, function(data){
            console.log(data);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM