2012-11-12 29 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; 
});