调用Web服务表单JQuery:不能在IE中工作(JQMIGRATE:不推荐使用jQuery.browser ??)

时间:2014-08-08 07:51:04

标签: javascript jquery ajax internet-explorer

我是Ajax和JQuery的新手,但我需要在基于HTML / Javascript的小型Web应用程序中调用Web服务。

一切正常,使用Firefox或Chrome,但没有任何事情使用IE浏览器(我现在使用的是IE 9)。

这里是你的代码

if ($.browser.msie && window.XDomainRequest) {
            if (window.XDomainRequest) {
                var query = 'http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/wfs/Numeri_Civici_2012.map&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=IN.NUMERICIVICI.2012&SRSNAME=EPSG:4326&bbox=7.70,44.80,7.75,44.85&outputFormat=GML2';
                var xdr = new XDomainRequest();
                if (xdr) {
                    xdr.onload = function () {
                        alert("OK");
                    }
                    xdr.onerror = function () { 
                        alert("KO");
                    }
                    xdr.open('GET', query);
                    xdr.send();
                }
            }
        }
        else {
            var query = 'http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/wfs/Numeri_Civici_2012.map&SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=IN.NUMERICIVICI.2012&SRSNAME=EPSG:4326&bbox=7.70,44.80,7.75,44.85&outputFormat=GML2';
            $.ajax({
                type: "GET",
                url: query,
                dataType: "text",
                crossDomain: true,
                success: function (data1) {
                      alert("OK");
                      alert(data1)
                },
                error: function (response, textStatus, errorThrown) {
                    alert("KO");
                    alert(errorThrown);
                }
            });
        }

我尝试synthesize in a jsfiddle,所以你可以试试。

当我尝试在IE中执行时,浏览器控制台告诉我......

JQMIGRATE:不推荐使用jQuery.browser

如何修改我的代码?

提前谢谢大家,我们将不胜感激任何建议或感谢!

切萨雷

1 个答案:

答案 0 :(得分:1)

$.browser函数确实是deprecated。如果要检测IE,请改用:

var browser = navigator.userAgent.toLowerCase(),
isIE = (browser.indexOf("msie")>-1 || browser.indexOf("trident")>-1);
if (isIE && window.XDomainRequest) {
  //the rest of your code
}