访问外部变量(AJAX调用)



我如何在另一个ajax呼叫请求中使用jquery请求使用ajax请求的URL?

例如:这是Ajax请求的URL:

http://www.google.com?action = search

这是我使用按钮1 的第一个AJAX调用:

function display_url1() {
jQuery.ajax({
type: 'GET',
url: 'http://www.google.com?action=search',
success: function(msg) {
$('#show_results').html(msg);
}
});
}

使用第二个AJAX请求(使用Button2)我想调用此URL:

http://www.google.com?action = search& category=sport

类似的东西:

function display_url2() {
jQuery.ajax({
type: 'GET',
url: 'THE FIRST URL + &category=sport',
success: function(msg) {
$('#show_results').html(msg);
}
});
}

因此,使用新的Ajax请求,我想将 category = Sport 添加到第一个URL。因此,我的问题是如何访问用另一个呼叫创建的外部变量

因此具有变量并在两个调用中使用。类似:

var url = "http://www.example.com?q=1";
function display_url1(){
  makeCall(url);
}
function display_url2(){
  makeCall(url + "&foo=bar");
}

function makeCall(url) {
  jQuery.ajax({
    type: 'GET',
    url: url,
    success: function(msg) {
      $('#show_results').html(msg);
    }
  });
}

基于编辑的n评论...

var url;
function display_url1(){
  url = "http://www.example.com?q=1";
  makeCall(url);
}
function display_url2(){
  makeCall(url + "&foo=bar");
}

function makeCall(url) {
  jQuery.ajax({
    type: 'GET',
    url: url,
    success: function(msg) {
      $('#show_results').html(msg);
    }
  });
}

假设您使用的是$.ajax(),可以使用complete回调的this.url访问URL,例如:

$('button').on('click', function() {  
  $.ajax({
    url: 'http://www.google.com?action=search',
    complete : function() {
        var theURL = this.url;
        // Now perform a second one:
        $.ajax({  
            url: theURL+'&category=sport'
        });
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button>Send request</button>

最新更新