从jQuery.get()返回responseText

时间:2011-09-29 14:26:37

标签: javascript ajax jquery get

我试着这样做:

var msg = $.get("my_script.php");

我认为msg会被设置为my_script.php返回的文本,即。 jqXHR对象的responseText。 由于msg始终设置为“[object XMLHttpRequest]”

,它显然不能像那样工作

有没有快速的1行方式来做我想要的事情?

感谢。

4 个答案:

答案 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)

响应文本在成功回调中可用;在那里做你需要做的事。