Javascript 跨域json解析
我在其中一个链接中有以下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":"
{"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");}
});