为什么这个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>
答
您在$.get
调用页面必须属于同一个原点(已经已经提到这里)。而且,回调函数仅在成功时被调用。这意味着如果你打电话给一个页面并且你是未经授权的(401),或者找不到该页面(404),则不会调用回调函数。
答
它可能依赖于同源策略,并最终在服务器端页面错误...
你的html页面是否也位于'http:// localhost:8080'?否则,同源政策就是其原因。 – ThiefMaster 2012-03-06 11:41:43
尝试在Firefox中使用Fiddler或Firebug来查看请求返回的结果。 – Alex 2012-03-06 11:42:14