为什么JQuery AJAX调用不能在IE7中运行? (对于这个具体的例子)

时间:2010-11-23 20:15:33

标签: javascript jquery ajax internet-explorer

我确实看到了下面的链接,但遗憾的是我的代码似乎没有任何内容。

此功能在FF中工作,但在IE中不起作用,只需将名称值对(info /“”)发送到服务器即可。不需要返回任何东西或调用任何其他功能。

有什么建议吗?

function functionAX()
{ 
    $(document).ready(function() {

       $.ajax({
           url: "/cgi-bin/app.exe",
           method: "post",
           async: false,
           data: { info: "" }
       });

    });
}


谢谢。

修改
看来这个ajax调用有效 - 但只是第一次被调用。

在上下文中:(C中的cgi app,JS中的html)
我有两个html页面。在每个页面上都有一个标题,其中包含两个页面的标签/链接。当单击其他页面/选项卡时,我调用此函数functionAX()将名称/值对发送到cgi可执行文件。根据此输入,cgi将创建另一个html页面的新版本。 (使用async:false,旧页面将锁定,直到加载新页面,这对于此应用程序来说很好,只要我在点击该页面的选项卡/链接后获得一个新页面)。

所以当我回到“第2页”并选择“第1页”(第2页第二次)时,它不再调用该函数或向cgi应用程序发送任何内容......

这是浏览器设置的问题吗?为什么不向cgi发送任何内容?






jQuery .ajax method in IE7 & IE6 not working but working fine in Firefox

Why doesn't this simple jQuery ajax work?

jQuery/Ajax call - It Doesn't work on IE7

jQuery ajax .load() not working in IE6/IE7/IE8 - Working in FF/Safari/Chrome

jquery ajax doesn't work in IE

2 个答案:

答案 0 :(得分:1)

根据json.org规范,您的退货无效。这些名称总是被引用,因此您应该返回{ "info": "" }

这可能不是您的设置问题,因为您说其中一个可以与FF / etc一起使用,但是如果您将来需要切换到另一个JSON解析器,它应该是正确的。

根据您的编辑,似乎IE正在缓存您的Ajax请求。为防止IE缓存您的Ajax请求,请执行以下操作:

{
'info': '',
'random' : Math.random()
}

答案 1 :(得分:-1)

我认为你应该这样做:

$(document).ready(function() {

   $.ajax({
       url: "/cgi-bin/app.exe",
       method: "post",
       async: false,
       data: { info: "" }
   });

});

function functionAX()
{ 
       $.ajax({
           url: "/cgi-bin/app.exe",
           method: "post",
           async: false,
           data: { info: "" }
       });
}

将函数和document.ready

结合起来似乎很奇怪