IE7和IE6中的jQuery .ajax方法不起作用,但在Firefox中工作正常

Rya*_*P13 3 ajax jquery internet-explorer-7 internet-explorer-6

这与我以前的帖子有关:

jQuery .load方法导致页面刷新AJAX

我更改了我的implmentation以使用.ajax方法而不是.load,它在Firefox中工作正常,但在IE7或IE6中没有:

    $('ul#coverTabs > li > a').live('click', function(event) {

    // Find href of current tab
    var $tabValue = $(this).attr('href');

    $.ajax({
        type: "GET",
        cache: false,
        dataType: "html",
        url: $(this).attr('href'),
        success: function(data){

        $(data).find('.benefitWrap').each(function(){

            var $benefitWrap = $(this).html();

            $('.benefitWrap').replaceWith($('<div class="benefitWrap">' + $benefitWrap + '</div>'));

        });

       }

    });

    event.preventDefault(); 

});
Run Code Online (Sandbox Code Playgroud)

这让我很伤心,因为它已经花了很长时间才能实现这一目标.

我出错的任何想法?

Cor*_*nie 20

只是一个快速的.我曾经遇到过一些令人沮丧的问题,过去使用IE6/7默默地失败了.在几乎所有情况下,在我的代码中的某个地方(不一定在有问题的ajax调用中)我在这样的参数之后有一个额外的逗号:

$.ajax({
        type: "GET",
        cache: false,
        dataType: "html",
        url: $(this).attr('href'),
        success: function(){},
)}
Run Code Online (Sandbox Code Playgroud)

我会通过jslint运行脚本,看看在进行适当的调试之前语法中是否有任何有趣的导致此问题.


Rya*_*P13 6

我不小心搞清楚了问题是什么.

此变量中引用的链接:

var $tabValue = $(this).attr('href');
Run Code Online (Sandbox Code Playgroud)

最后有一个哈希值,如下所示:

https://bupacouk.bwa.local.internal.bupa.co.uk/cash-plan-quote/quoteAction.do?getBenefitLevelDetails=getBenefitLevelDetails&productPolicyId=7850#a1
Run Code Online (Sandbox Code Playgroud)

这导致AJAX在IE版本中失败.

使用以下代码:

var $withoutHash = $tabValue.substr(0,$tabValue.indexOf('#'));
Run Code Online (Sandbox Code Playgroud)

Getrs摆脱它现在有效:)