为什么这个AJAX回调没有被调用?

问题描述:

当我点击以下形式的提交按钮时,我的jQuery GET函数被调用,但回调不是。有任何想法吗?为什么这个AJAX回调没有被调用?

<body> 
<form id="searchbox"> 
    <input type="text" name="q" size="60" value="Search ..." /> 
    <input type="submit" value="Find it!"> 
</form> 
<div id="result"><div> 
<script> 
    $("#searchbox").submit(function(event) { 
event.preventDefault() 
    $.get("http://localhost:8080/more/stuff/here", 
    function(data) { 
     alert(data); 
    } 
); 
}); 

</script> 
+2

你的html页面是否也位于'http:// localhost:8080'?否则,同源政策就是其原因。 – ThiefMaster 2012-03-06 11:41:43

+0

尝试在Firefox中使用Fiddler或Firebug来查看请求返回的结果。 – Alex 2012-03-06 11:42:14

您在$.get调用页面必须属于同一个原点(已经已经提到这里)。而且,回调函数仅在成功时被调用。这意味着如果你打电话给一个页面并且你是未经授权的(401),或者找不到该页面(404),则不会调用回调函数。

它可能依赖于同源策略,并最终在服务器端页面错误...