首页 新闻 会员 周边

在本地页面使用$.ajax进行跨域访问webservice接口问题

0
悬赏园豆:30 [待解决问题]

在本地页面使用$.ajax进行跨域访问webservice接口:

第一例:

$.ajax({
type: 'GET',
url: 'http://www.pm25.in/api/querys/aqi_details.json?city=wenzhou&token=',
dataType: 'jsonp',
success: function(msg){
alert(JSON.stringify(msg));
},
error:function(){
alert('error');
}
});

成功输出响应数据;

第二例:

$.ajax({
type: 'GET',
url: "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName?theCityName=温州",
dataType: 'jsonp',
success: function(msg){
alert('success');
},
error:function(XMLHttpRequest, textStatus, errorThrown){
alert('error');
}
});

输出error。但在谷歌浏览器的调试界面上可以看到如下界面,

证明响应中已经包含需要的数据。问题分析:dataType: 'jsonp',返回的数据类型为xml,这可能是造成失败的原因。但为什么响应中会有需要的数据?这些数据怎么取出来呢?

问题补充:

error的回调函数中,textStatus为parsererror,errorThrown示意回调函数没有执行,可以确定为解析异常。是不是jsonp不可以处理xml数据呢?

既然response中有需要的数据,那么总该有办法把他们提取出来吧?到底该怎么取呢?

小小三师弟的主页 小小三师弟 | 菜鸟二级 | 园豆:205
提问于:2014-05-27 13:49
< >
分享
所有回答(1)
0

就是调用成功了.但是内容解析失败.因为返回的是XML

js不能直接解析xml的,所以才要json.

像上面的加个请求头,让服务返回json就好了.

吴瑞祥 | 园豆:29449 (高人七级) | 2014-05-27 14:01

服务值返回xml数据……那怎么把数据取出来自己看、来解析呢?

支持(0) 反对(0) 小小三师弟 | 园豆:205 (菜鸟二级) | 2014-05-27 14:49

@小小三师弟: 那得看jqeury支持不了

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2014-05-27 15:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册