首页 > 解决方案 > $.blockUI() 在 IE 9 中匿名调用 ajax 方法

问题描述

function getData(cardNumber) {
    var path = g_contextPath + '/test/demo/searchdata';
    var vData = {"cardNumber":cardNumber}; 
    $.blockUI();
    $.ajax({
        type: 'GET',
        url : path,
        data : vData,
        cache : false,
        dataType : "json",
        async : true,
        success : function(output) {
            console.log("No data found for the card number : " + output);
            $.unblockUI();
        },
        error : function(jqXHR, textStatus,  errorThrown ){
            alert(errorThrown);
            $.unblockUI();**`strong text`**
        }
    });
}

虽然调用上述函数在 chrome 中工作得非常好,但在 Internet Explorer 9 中测试时,它调用了两次,一次是预期的,另一次是匿名调用。我的 Eclipse 控制台显示以下错误:

错误 [org.apache.struts2.dispatcher.Dispatcher] (http-/0.0.0.0:8080-8) 处理请求期间发生异常:没有为命名空间 [/test/demo] 映射的操作和关联的操作名称 [未定义]带有上下文路径 [/myapp]。:没有为命名空间 [/test/demo] 映射的操作和与上下文路径 [/myapp] 关联的操作名称 [undefined]。- [未知位置]。

当我评论 $.blockUI(); 然后我的 Eclipse 控制台中没有任何错误。

对于其他要求,我使用了以下 js Using jQuery blockUI plugin V2.53, jQuery JavaScript Library V1.8.2, jquery-ui-1.9.1.custom.js,jquery.dataTables.js,

和使用 Struts 2 的 java 后端

我还添加了 $j = jQuery.noConflict(); 在 jquery(document).ready(function(){}); 否则 $.blockUI 不起作用。

标签: ajaxinternet-explorer-9anonymous-functionjquery-blockui

解决方案


切换到 JqueryBlockui.js 的最新版本(版本2.70.0)解决了我的问题


推荐阅读