IE7中的jQuery AJAX问题(可能还有其他版本)

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 中,您实际上不会收到错误,但如果您对其进行调试,您将看到服务器永远不会被命中,或者代码永远不会到达成功块。