jQuery.get()回调中的数据为空

时间:2010-08-20 18:50:00

标签: javascript jquery

$.get("http://localhost/test.php", (function(data){
    alert(data);
}))

警告为空。我是新手,我看不出我做错了什么。帮助

7 个答案:

答案 0 :(得分:3)

确实使用file://网址但 http://?我闻到了 same origin policy

您是否通过file://网址在浏览器中使用jQuery打开文件,然后尝试通过http://获取?因为您的协议和主机必须在您执行Ajax时匹配。

确保您在浏览器中以http://localhost/index.php file://localhost/index.php打开文件。然后,您应该可以通过http://localhost/test.php获取该文件。

答案 1 :(得分:2)

也许您没有告诉代码运行?尝试使用

将其放入$(document).ready()
$(function() {
  $.get("http://localhost/test.php", function(data){
    alert(data);
  });
});

http://api.jquery.com/ready/

答案 2 :(得分:0)

如果您在浏览器中输入http://locahost/test.php,您会收到任何数据吗?

jquery是否获取网址没有区别,结果应该是相同的。

答案 3 :(得分:0)

test.php实际输出了什么吗?

这适合我。

答案 4 :(得分:0)

响应的mime类型是什么?

The doc says

  

成功回调函数是   传递了返回的数据,这将是   是一个 XML根元素,文本字符串,   JavaScript文件或JSON对象,   取决于的MIME类型   响应。它也传递了文本   回应的状态。

因此,根据回调数据参数的数据类型,警报可能会尝试向您显示一个不易转换为字符串的对象。

答案 5 :(得分:-1)

回调函数应该是$ .get:

的第三个参数
 $.get("http://localhost/test.php", {}, (function(data){
     alert(data);
 }))

答案 6 :(得分:-1)

好的,解决了它:当html文件在webserver目录中并从localhost调用时工作,当html是file://时不起作用。这很不方便,但很好。 (在2天之前,我似乎无法将自己的答案标记为解决方案。)