function foobar(){
$.ajaxSetup ({cache: false});
var response = $.get("http://mysite.com/return.php")
document.write(response);
}
我正在尝试将此响应保存为变量。我怎么能这样做?
答案 0 :(得分:3)
$。get 是一个异步AJAX调用 - 您的 document.write 行将在服务器甚至向您发送响应之前执行。
如果要访问返回值,则需要在回调中执行此操作,如下所示:
$.get('/return.php', function(response) {
document.write(response);
});
答案 1 :(得分:1)
除非您将$.ajax
选项设置为async
,否则您将无法使用false
。否则,用于AJAX的回调将在文档关闭以进行写入后执行,并且您将覆盖整个页面。
相反,使用load
以异步方式将强制性HTML转储到页面中。
答案 2 :(得分:0)
$ .get提供了一个处理响应的success()函数......
function foobar(){
var response = null;
$.ajaxSetup ({cache: false});
$.get("http://mysite.com/return.php").success(function(respText) {
response = respText;
document.write(response);
});
}
答案 3 :(得分:0)
您可以使用$ .load()函数,因为这是它的预期用途
请参阅http://api.jquery.com/load/
从手册:
此方法是从服务器获取数据的最简单方法。它大致相当于$ .get(url,data,success),除了它是一个方法而不是全局函数,它有一个隐式回调函数。当检测到成功的响应时(即当textStatus为“success”或“notmodified”时),。load()将匹配元素的HTML内容设置为返回的数据。这意味着该方法的大多数用途都非常简单:
$('#result').load('ajax/test.html');