各位神!
小弟写了个 js 里面写了个 ajax 请求;
格式 jsonp ;
在网页状态调试能够成功传回数据;
只要放到 xcode 模拟器和 iphone 调试,总是报错!!!
代码:$.ajax({
url: URL,
dataType: 'jsonp',
cache: "false",
success: function (data) {
var jsonobj = eval('(' + data + ')');
for (var i=0;i<jsonobj.rows.length;i++){
valueobj[i] = jsonobj.rows[i];
//alert(valueobj[i].t_orgdesc);/所有场站名/
}
add_a();
},
error: function(XMLHttpRequest,textStatus,errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}});
真机测试时候,总是调到 error ,报出的错误:
XMLHttpRequest.status=200 ;
XMLHttpRequest.readyState=4 ;
textStatus=parsererror ;
之前我认为是跨域问题,做了些跨域操作也是不行,小弟忙活了 3 天了,再不解决无法回家过年。。。拜托各位大神了~~
返回的 json 数据:{"d":"{ \"rows\":[ { \"id_key\":\"9\",\"t_orgid\":\"FLDFDC\",\"t_type\":\"1\",\"t_orgdesc\":\"富丽达风电场\",\"t_comid\":\"10002\"}, { \"id_key\":\"10\",\"t_orgid\":\"MGYFDC\",\"t_type\":\"3\",\"t_orgdesc\":\"玫瑰营风光互补电场\",\"t_comid\":\"10002\"}, { \"id_key\":\"14\",\"t_orgid\":\"SSFDC\",\"t_type\":\"1\",\"t_orgdesc\":\"长春风电场\",\"t_comid\":\"10002\"}, { \"id_key\":\"15\",\"t_orgid\":\"10003ELFDC\",\"t_type\":\"3\",\"t_orgdesc\":\"二连风光互补电场\",\"t_comid\":\"10003\"}, { \"id_key\":\"16\",\"t_orgid\":\"10003HGEFDC\",\"t_type\":\"2\",\"t_orgdesc\":\"红格尔光伏电场\",\"t_comid\":\"10003\"}, { \"id_key\":\"17\",\"t_orgid\":\"10003CGFDC\",\"t_type\":\"2\",\"t_orgdesc\":\"潮格光伏电场\",\"t_comid\":\"10003\"}, { \"id_key\":\"18\",\"t_orgid\":\"10004HTFDC\",\"t_type\":\"1\",\"t_orgdesc\":\"辉腾风电场\",\"t_comid\":\"10004\"}, { \"id_key\":\"19\",\"t_orgid\":\"10004KLFDC\",\"t_type\":\"3\",\"t_orgdesc\":\"库伦风光互补电场\",\"t_comid\":\"10004\"}, { \"id_key\":\"20\",\"t_orgid\":\"10005HNJDC\",\"t_type\":\"1\",\"t_orgdesc\":\"红泥井电场\",\"t_comid\":\"10005\"} ]}"}
1
xylitolLin 2016-01-25 13:39:05 +08:00 1
那到底是报什么错呢?这排版看得眼花,还有,你看看你的 html 有没有 <meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' "> 这个 csp 的 meta ,有的话注释了再试一下
|
2
hoperuin 2016-01-25 15:01:36 +08:00 1
textStatus=parsererror
解析应答的时候出现错误了,json 返回的 d 对象没用 怎么就取 rows 了呢? jsonobj.rows ? d 对象在哪里? |
3
Tneciv 2016-01-26 09:32:43 +08:00 1
不应该先 parseJson 把返回的数据处理下吗?现在这种格式解析不了的
|
4
anzaimary OP @xylitolLin 现在研究了下,是不是因为 ajax 在 Xcode 中进行真机调试(或模拟器)无法实现通信的问题,因为我又使用另外的数据格式给服务端发 ajax 请求,还是出现之前那样的状况,程序一直走不到 success 。我再研究研究 ajax 传输机制。只怪自己会的太少~排版确实有点乱~~
|
5
anzaimary OP @hoperuin 可是为嘛在 web 端就可以这么取到数据呢, d 就是下面的 var jsonobj = eval('(' + data + ')');中的 data 呀。不过还是谢谢你回复了,祝您新年快乐~
|