Windows 8 / IE10无法使用$ .ajax Get

时间:2013-05-23 07:36:35

标签: php jquery ajax xmlhttprequest

所以工作是将所有机器升级到Windows 8,我们遇到了兼容性问题。这适用于除Windows 8以外的所有浏览器。

所有这些脚本都在运行Windows Server 2008,因此我可以看到为什么IE10应该有问题:

function getProject(type, number){

            $.ajax({
                type: "GET",
                cache: false,
                url: "prospect.xml",
                dataType: "xml",
                complete: function(XMLHttpRequest, textStatus){
                            if (textStatus!='success') {
                                $('#column-left').hide()
                                $('#column-right').hide()
                                $('#error').html('There was an error loading the data, please contact Systems Management').show()
                            }
                        },
                success: function (data) {                      
                        if (type=='all') {                          
                            parseXmlAllProjects(data)
                        } else if (type='specific') {
                            parseXmlSpecificProject(data, number)
                        }
                    }
              });             

        }

由于某种原因,脚本未能成功加载xml文件,因此无法检查textStatus。就像这样在我们的winxp环境中运行得非常好。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

尝试更改此行:

complete: function(XMLHttpRequest, textStatus){

对此:

complete: function(jqXHR, textStatus){

我猜IE10不喜欢你使用XMLHttpRequest名称。

答案 1 :(得分:0)

在阅读了一些文章之后我发现,因为IE9 IE没有像以前版本的IE那样返回msxml文档。因此代码已更改为以下内容:

function getProject(type,number){

            $.ajax({
                    type: "GET",
                cache: false,
                url: "prospect.xml",
                dataType: ($.browser.msie) ? "text" : "xml", 
                beforeSend: function(xhr, settings){
                   try {xhr.responseType = "msxml-document";} catch(err){}
                   },

                                    success: function (data) {      
                        if (type=='all') {                          
                            parseXmlAllProjects(data)
                        } else if (type='specific') {
                            parseXmlSpecificProject(data, number)
                        }
                    }
              });                           
        }