AJAX请求仅在IE中失败

时间:2013-11-14 18:07:28

标签: jquery ajax xml

以下ajax调用在Chrome / FF中运行正常,但仅在IE中失败。 我试过打开缓存,物理/相对路径,打开和关闭异步,但没有运气。我整个上午一直在寻找和测试不同的解决方案,但我仍然没有运气。

返回的错误代码不是非常有用:error undefined

任何想法?

function CreateCard(//a bunch of paramaters//){



                var soapMessage ='//big long soap string goes here//';          
                var webServiceURL="//consumption URL (relative)";


                $.ajax({
                    url: webServiceURL, 
                    type: "POST",
                    crossDomain: true,
                    dataType: 'xml',
                    data: soapMessage, 
                    processData: false,
                    contentType: "text/xml; charset=\"utf-8\"",
                    success: function(data, status, req, xml, xmlHttpRequest, responseXML) { 
                        var newCardID=$(req.responseXML).find('AddeCardRequestResult').text();  //Fetches new card id
                        $('div#debug').html("success: " + newCardID)  
                        $('#CID').val(newCardID);

                        __doPostBack('btnSubmit', newCardID);

                    }, 
                    error: function(xhr, msg) { 
                        $('div#debug').html(msg + '\n' + xhr.responseText)
                    } 
                });




            }

2 个答案:

答案 0 :(得分:0)

使用ie,您需要在请求中添加某种随机参数。

我通常使用(new Date()).getTime()之类的东西作为远程应用程序未使用的参数名称的值。

这会欺骗,即每次都认为这是一个新请求。

修改:找到类似的question添加链接。

这个answer比我更好地解释它,它还包含一个jquery解决方案。 (从链接的答案复制,所以信用就到那里。)

$.ajaxSetup({ cache: false });

答案 1 :(得分:0)

这个答案只是为了突出OP问题中评论的最终结果:

webServiceURL与脚本位于同一个域中,因此不需要crossDomain: true,

data: soapMessage,可能也会导致问题,因为AJAX指定了POST,但soapMessage是一个XML字符串,会转换为附加到URL的查询字符串。