Javascript Jquery ajax()调用在IE8中失败

Javascript Jquery ajax()调用在IE8中失败,javascript,jquery,ajax,internet-explorer,Javascript,Jquery,Ajax,Internet Explorer,我有以下代码,用于从ajax类表单中使用ajax提交数据。这在Firefox、Safari和Chrome中非常有效,但在IE中却失败了 ajax: function() { $('form.ajax').live('submit', function() { var form_ajax = $(this); $.ajax({ url: form_ajax.attr('action'), data: form_a

我有以下代码,用于从ajax类表单中使用ajax提交数据。这在Firefox、Safari和Chrome中非常有效,但在IE中却失败了

ajax: function() {
      $('form.ajax').live('submit', function() {
        var form_ajax = $(this);

        $.ajax({
          url: form_ajax.attr('action'),
          data: form_ajax.serialize(),
          type: form_ajax.attr('method'),
          dataType: 'script',
          beforeSend: function(xhr) {

            $('#ajax-bid-new .ajax-form-error, #ajax-bid-new .ajax-form-success').remove();
            form_ajax.slideUp();

          }
        });

        return false;
      });
请帮帮我,我被困在这里已经两天了。我正在从服务器返回一个Javascript文件,以便在浏览器中进行评估。这在Firefox、Chrome和Safari中可以正常工作,但IE会将其作为文件接收并打开文件下载对话框

在IE中我能做些什么来实现这一点?我尝试在application.js文件中删除以下代码,顺便说一句,我正在做一个rails项目

// public/javascripts/application.js
jQuery.ajaxSetup({ 
  'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
})
即使在像上面那样编写ajaxSetup块之后,我也会从IE中获得相同的行为。

看起来像是生活在IE中。您是否尝试过使用普通提交:

$('form.ajax').submit(function() {
要捕获实时表单,请在IE中提交事件,而不是:

注意事项

IE对AJAX请求的缓存确实比Firefox更具攻击性。如果不适合您的站点,则需要在响应中适当设置缓存控制头

更改您的内容类型,上次我通过从application/json更改内容类型修复了类似的问题;charset=utf8到纯应用程序/json


LiveQuery插件解决了问题

submit不起作用。。我不熟悉javascript和javascript,我想请求是用我上面的代码正确地异步发送的——只有当IE收到js时——不是评估js,而是呈现js
$("form").live("submit", function() { ... });
var submitHandler = function() { ... };
$("body").children().each(function() {
      $("form", this).live("submit", submitHandler);
})