我尝试使用jQuery和$.post
在Internet Explorer中进行AJAX调用,但是出现了一个错误,说“拒绝访问”。问题有点奇怪,因为只有在我从其他页面访问页面后才会出现这种情况。
例如,我在地址栏中输入URL,让IE加载页面。然后我点击一个按钮,脚本应该开始加载JSON数据。(提供数据的脚本位于同一服务器上,并且我使用相对URL访问它,因此不是域名不同的问题。甚至尝试使用具有相同主机部分的绝对URL。)
但是当我刷新页面并再次尝试时,它就可以工作了!当我从另一个页面进入该页面时也是如此。一开始什么都不起作用,但是当我点击“刷新”时,一切正常。
IE给我报错信息“拒绝访问”,而在其他浏览器中我没有注意到这种行为。由于我已经尝试了很多事情,但仍然无法想象问题可能出在哪里,所以我想问问您认为问题可能出在哪里?
编辑: 一个小例子:
test.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<script type="text/javascript" src="/ietest/jquery.js"></script>
<script type="text/javascript" src="/ietest/test.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<a href="#">Test</a>
</body>
</html>
ajax.html
It works!
test.js
$(document).ready(function(){
$( 'a' ).click(function(){
$.post( '/ietest/ajax.html', function( data ) {
alert( data );
});
});
});