我有一个链接以下JSON:跨域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();
}
上面的代码是在工作与IE有关安全警告信息,但它不是在浏览器和Mozilla的工作。 xmlhttp.status在chrome和mozilla中为0。
另一个码我用:
function loadEdition()
{
var getUrl = 'someurl/desktopReader.do?numPublisher=3&type=Editions&numPublication=19';
$.ajax({
url : getUrl,
type : 'GET',
dataType : 'jsonp',
jsonp: 'jsonp',
crossDomain : true,
success: function() { alert('Success!'); },
error: function() { alert('Uh Oh!'); },
});
}
在这种情况下,我总是警告 '嗯哦!'。
请告诉我正确的方法!
告诉jQuery的,它是会得到,如果服务器不发送* * JSONP JSONP也无济于事。的 – Quentin 2013-04-11 10:30:09
可能重复[途径来规避同源策略(http://stackoverflow.com/questions/3076414/ways-to-circumvent-the-same-origin-policy) – Quentin 2013-04-11 10:30:23
这是否其他域服务支持CORS?该其他域名服务是否支持[JSON * P *](http://en.wikipedia.org/wiki/JSONP)?如果没有,你必须使用代理。 – Bergi 2013-04-11 10:33:07