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 を呼び出しの外に移動すると、コールバックから 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 に答える