2012-11-12 49 views
0

我有一個jQuery ajax調用一個url。成功後,我需要修改此網址以便後續調用。我如何訪問這些設置?從回調中修改jQuery ajax設置

$.ajax({ 
    url: 'http://google.com', 
    success: function (data, textStatus, jqXHR) { 
     //set url here to http://yahoo.com 
    } 
+0

更新了我的代碼。看看 –

回答

0
var count = 0; 

function getUrl() 
{ 
    count++; 
    if (count == 1) 
    return 'http://google.com'; 
    else 
    return 'http://yahoo.com'; 
} 

$.ajax({ 
    url: getUrl(), 
    success: function (data, textStatus, jqXHR) { 

    } 
}); 
+0

試過了。這行不通 – cyberwombat

+0

更新了我的代碼。看看 –

+0

這可能工作,但不是在我的情況 - 我需要更新網址與我的回調數據 - 雅虎/谷歌只是例子 – cyberwombat

0
var customUrl = 'http://google.com' 

$.ajax({ 
    url: customUrl , 
    success: function (data, textStatus, jqXHR) { 
     //set url here to http://yahoo.com 

     customUrl = 'http://yahoo.com' 

     use your customUrl variable later 
    } 
}); 

Ajax是異步的。因此,如果您想稍後使用該url,最好在成功回調函數中使用它...

如果您在ajax請求之後立即使用它,則可能有ajax請求仍然沒有完成,並且當您嘗試訪問它時,變量未更新

+0

我需要修改ajax函數使用的customUrl,以便下次我提交時使用新的URL。這沒有做到。 – cyberwombat

0

好了 - 計算出來了。我的問題是,我的電話被封裝在提交表單中,並且更新此調用中的url不起作用。但是,將URL移出呼叫外允許我從回調中更新它。

這不起作用:

$("#form").bind("submit", function(evt) { 
    var url = "http://myurl"; 
    $.ajax({ 
    url: url, 
    type: "PUT", 
    contentType: "application/json", 
    dataType: "json", 
    data: data, 
    success: function (data, textStatus, jqXHR) { 
     url = "http://newurl" 
    }, 
    error: function (jqXHR, textStatus, errorThrown) { } 
    }); 
    return false; 
}); 

但這:

var url = "http://myurl"; 
$("#form").bind("submit", function(evt) { 
    $.ajax({ 
    url: url, 
    type: "PUT", 
    contentType: "application/json", 
    dataType: "json", 
    data: data, 
    success: function (data, textStatus, jqXHR) { 
     url = "http://newurl" 
    }, 
    error: function (jqXHR, textStatus, errorThrown) { } 
    }); 
    return false; 
});