Jquery ajax 请求跨域获取json数据,数据可以获得,但json解析的时候报错,请问有什么方法?

$.ajax({
url: "http://m.weather.com.cn/data/101020100.html",
type: "post",
dataType:"jsonp",
jsonp:"callback",
success:function(data){
alert("success"+data);
},
error: function(xmlHttpRequest, textStatus, errorThrown) {
alert("error"+textStatus + errorThrown);
}
});
通过firebug可以知道,页面json数据获取了,但解析的时候报错了,请问有什么方法可以获取数据不?或者纯文本也是可以的?
今天很邪门,本来一个get应该就OK的,搞的头大了,万恶的js!

Jquery ajax 想在客户端跨域必须使用jsonp(还可以使用js方式)。你的dataType:"jsonp",没有问题,但看你的url就不像一个jsonp的链接,jsonp的url通常是以?结束的。这里有一篇关于跨域访问的文章,不知对你是否有帮助。http://www.ibm.com/developerworks/cn/web/wa-aj-jsonp1/
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-05-01
看了一下,好像没有提供jsonp的访问方法,weather.com.cn支持的是用iframe潜入的方法。本回答被提问者和网友采纳
第2个回答  2019-09-12
在后台需要
String callback=request.getParameter("callback");//参数以实际定义为准
return callback+"("+ data+")";
第3个回答  2012-03-22
你这样能取到数据?callback都没带到url里
"http://m.weather.com.cn/data/101020100.html?callback="再试试追问

请问callback里面是我的回调函数?

还是jsonp对方服务器要支持才可以啊?

追答

callback里面是你的回调函数名,你注意看url,这都是jquery封装好的,你可以看到callback=一串很长的随即字符串,这个就是你传过去的函数,相当于是把你的数据请求封装好成一个函数然后跨域执行这个函数,相当于脚本注入,你可以百度一下"jsonp原理",这个函数的返回值就是你的data
至于支持这个现在来说应该不存在了吧,都是支持的