我试着这样做:
var msg = $.get("my_script.php");
我认为msg会被设置为my_script.php返回的文本,即。 jqXHR对象的responseText。 由于msg始终设置为“[object XMLHttpRequest]”
,它显然不能像那样工作有没有快速的1行方式来做我想要的事情?
感谢。
答案 0 :(得分:29)
经过一些测试,我最终找到了解决方案。
我需要调用同步,$ .get简写函数总是异步的,所以我需要使用$ .ajax,如下所示:
var msg = $.ajax({type: "GET", url: "my_script.php", async: false}).responseText;
我不认为有更好的方法可以做到这一点,谢谢你的答案。
答案 1 :(得分:6)
您可以随时使用:
var msg;
$.get("my_script.php", function(text) {
msg = text;
});
如果由于某种原因,响应是文本,远程脚本可能会将内容类型更改为类似JSON的内容,因此jQuery会在输出之前尝试解析字符串。
答案 2 :(得分:2)
返回值只是用于ajax请求的jqXHR对象。要获取响应数据,您需要注册回调。
$.get("my_script.php", function(data) {
var msg = data;
alert(msg);
});
答案 3 :(得分:1)
响应文本在成功回调中可用;在那里做你需要做的事。