Rya*_*yan 6 ajax jquery internet-explorer-7
任何人都可以告诉我为什么以下代码不能在IE7中工作,但它在Chrome/Firefox中工作得很好?
$(document).ready(function(){
$.ajax({
type: "POST",
dataType: "text",
cache: false,
url: "/ajax/ajax.asp",
data: "cmd=check_forfeits",
success: function(msg) {
return false;
}
});
});
Run Code Online (Sandbox Code Playgroud)
IE抛出的javascript错误是'Permission Denied'
如果我从有问题的页面的JS文件中删除那段代码,页面工作正常,没有错误,所以错误在于我相信的那段代码.
::: UPDATE :::
其他有点奇怪的是当我刷新页面时(在IE7中)我没有得到javascript错误,这段代码似乎正常工作.因此,就好像第一次页面加载此代码片段错误,但之后它运行得很好.
::: UPDATE :::
以下是来自IE7的此页面的小提琴帖子:
# Result Protocol Host URL
1 200 HTTP 192.168.47.13:8000 /
2 304 HTTP 192.168.47.13:8000 /js/jquery-1.4.1.js
3 200 HTTP 192.168.47.13:8000 /js/index.js
4 304 HTTP 192.168.47.13:8000 /js/jquery-1.4.1.js
5 200 HTTP 192.168.47.13:8000 /js/index.js
6 304 HTTP 192.168.47.13:8000 /css/main.css
7 304 HTTP 192.168.47.13:8000 /css/grid.css
8 304 HTTP 192.168.47.13:8000 /images/banner.jpg
Run Code Online (Sandbox Code Playgroud)
以下是Firefox中此页面的小提琴帖子:
# Result Protocol Host URL
1 200 HTTP 192.168.47.13:8000 /
2 304 HTTP 192.168.47.13:8000 /js/jquery-1.4.1.js
3 304 HTTP 192.168.47.13:8000 /js/index.js
4 304 HTTP 192.168.47.13:8000 /css/grid.css
5 304 HTTP 192.168.47.13:8000 /css/main.css
6 304 HTTP 192.168.47.13:8000 /images/banner.jpg
7 200 HTTP 192.168.47.13:8000 /ajax/ajax.asp
Run Code Online (Sandbox Code Playgroud)
小智 8
如果人们偶然发现这个页面是因为他们遇到了同样的错误 - 我发现IE7的另一个原因/解决方案失败了这个"PERMISSION DENIED"错误并成功刷新.
如果您在<head>标签中使用此功能,请确保:
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
Run Code Online (Sandbox Code Playgroud)
请注意,它在";"之后没有任何大写字母或空格.我们的网站有这个版本:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Run Code Online (Sandbox Code Playgroud)
并且在进行AJAX调用时会导致相同的行为.
希望这有助于其他人,因为我们花了大约6个小时来搞清楚这一点.
小智 2
我遇到了同样的问题。
我做了一个解决办法来解决这个问题。我编写了代码来进行 ajax 调用,而不使用 jQuery(创建了 XMLHttpObject、onreadystatechange 等)。然后我使用 jQuery 来解析 XML。
由于某些原因,jQuery 的 ajax 不能很好地与 IE7 配合使用。
在 IE7 中,您实际上不会收到错误,但如果您对其进行调试,您将看到服务器永远不会被命中,或者代码永远不会到达成功块。