0

我有一个对 url 的 jQuery ajax 调用。成功后,我需要修改此 url 以进行后续调用。我如何访问设置来执行此操作?

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

3 回答 3

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) {

    }
});
于 2012-11-12T17:00:59.883 回答
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;
});
于 2012-11-12T19:18:59.870 回答
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 请求仍未完成,并且当您尝试访问它时变量未更新

于 2012-11-12T17:01:38.687 回答