Javascript 跨域json解析

Javascript 跨域json解析,javascript,jquery,ajax,Javascript,Jquery,Ajax,我在其中一个链接中有以下json: {"edi":[{"NEdid":"19", "Publications":"B0001", "NCid":"141" , "SEditionCode":"C0001", "SLang":"English", "STimeZone":"GMT+4:00" , "SEdname":"Default", "NEdmon":"1", "NEdtue":"1", "NEdwed":"1" , "NEdthu":"1", "NEdfri":"1", "NEdsat":"

我在其中一个链接中有以下json:

{"edi":[{"NEdid":"19", "Publications":"B0001", "NCid":"141"
, "SEditionCode":"C0001", "SLang":"English", "STimeZone":"GMT+4:00"
, "SEdname":"Default", "NEdmon":"1", "NEdtue":"1", "NEdwed":"1"
, "NEdthu":"1", "NEdfri":"1", "NEdsat":"1", "NEdsun;":"1"
, "SFrequency":"Daily", "NSequence":"1", "dtCreatedOn":"2013-03-25 12:18:46.0"
, "NCreatedBy":"3", "dtModifiedOn":"2013-03-25 12:18:46.0"
, "NModifiedBy":"3", "BIsActive":"1", "BIsDeleted":"0", "NNoe":"7"}]}
我想解析跨域json。我在php页面的页面加载上调用以下函数,并使用localhost。我正在使用以下代码:

function loadEditionList(edurl) {

    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            var jsonEdition = xmlhttp.responseText;
            var objEdition = JSON.parse(jsonEdition);

            for (var i = 0; i < objEdition.edi.length; i++) { 
                var editionname=objEdition.edi[i].SEdname;  
                alert(editionname);
            }
        }
    }
    xmlhttp.open("GET", edurl, true);
    xmlhttp.send();
}
在这种情况下,我总是警觉地说‘哦!’


请告诉我正确的方法

问题可能出在服务器端。下面是我给另一个人的例子: 守则:

 $.ajax({
   url: "http://ws.geonames.org/postalCodeSearchJSON",
   dataType: "json",
   data: {
      postalcode_startsWith: request.term
   },
   success: function(data) {alert("ok");}
});
以身作则
我删除了JSONP函数回调名称,因为我看不到您的任何请求。我想,您可以执行标准的JSON请求(而不是JSONP)。

告诉jQuery如果服务器不发送JSONP,它将获得JSONP不会有帮助。其他域服务是否支持CORS?其他域服务支持吗?如果不是,你必须使用代理。为什么要使用PHP标记?(我删除了它)注意,问题实际上与解析JSON无关,问题是如何发出跨域请求。当您没有得到响应时,如何解析响应是无关紧要的。如果它是跨域的,则需要使用JSONP,除非您使用CORS(您的示例就是这样)。感谢您向我指出这一点。也许把它交给CORS就是解决办法?为什么要更改jsonp回调对我来说也是个问题:
jsonp:'jsonp',
 $.ajax({
   url: "http://ws.geonames.org/postalCodeSearchJSON",
   dataType: "json",
   data: {
      postalcode_startsWith: request.term
   },
   success: function(data) {alert("ok");}
});