我尝试在Internet Explorer中使用jQuery和$.post
进行AJAX调用,但我得到的是一个错误,说“权限被拒绝”。这个问题有点奇怪,因为只有当我在任何其他页面上访问页面时它才会出现。
例如,我在地址行中键入URL并让IE加载页面。然后我单击一个按钮,以便脚本开始加载JSON数据。 (提供数据的脚本位于同一服务器上,我使用相对URL访问它,因此使用不同的域不是问题。甚至尝试使用具有相同主机部分的绝对URL。)
但是当我刷新页面然后再试一次它就可以了!当我从另一个页面访问该页面时也是如此。起初没什么作用,但当我点击“刷新”一切都很好。
IE给了我错误消息“Permission denied”,而在其他所有浏览器中我都没有注意到这种行为。既然我已经尝试了很多东西,但仍然无法想象问题所在,我想问你认为问题可能是什么?
编辑:一个小例子:
的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 );
});
});
});
从jquerys论坛here上的帖子中,您必须将内容类型元作为头标记中的第一项。
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="/ietest/jquery.js"></script>
<script type="text/javascript" src="/ietest/test.js"></script>
</head>
<body>
<a href="#">Test</a>
</body>
</html>
如果是本地(localhost),那么出于安全原因,您必须拥有完整路径。
在我的情况下,更改jquery版本工作。而不是使用版本1.9.1,现在我使用1.12.4,它的工作原理。