Jquery ajax 请求跨域获取json数据,数据可以获得,但json解析的时候报错,请问有什么方法?
$.ajax({url:"http://m.weather.com.cn/data/101020100.html",type:"post",dataType:"jsonp...
$.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! 展开
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! 展开
4个回答
展开全部
Jquery ajax 想在客户端跨域必须使用jsonp(还可以使用js方式)。你的dataType:"jsonp",没有问题,但看你的url就不像一个jsonp的链接,jsonp的url通常是以?结束的。这里有一篇关于跨域访问的文章,不知对你是否有帮助。http://www.ibm.com/developerworks/cn/web/wa-aj-jsonp1/
展开全部
看了一下,好像没有提供jsonp的访问方法,weather.com.cn支持的是用iframe潜入的方法。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在后台需要
String callback=request.getParameter("callback");//参数以实际定义为准
return callback+"("+ data+")";
String callback=request.getParameter("callback");//参数以实际定义为准
return callback+"("+ data+")";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这样能取到数据?callback都没带到url里
"http://m.weather.com.cn/data/101020100.html?callback="再试试
"http://m.weather.com.cn/data/101020100.html?callback="再试试
追问
请问callback里面是我的回调函数?
还是jsonp对方服务器要支持才可以啊?
追答
callback里面是你的回调函数名,你注意看url,这都是jquery封装好的,你可以看到callback=一串很长的随即字符串,这个就是你传过去的函数,相当于是把你的数据请求封装好成一个函数然后跨域执行这个函数,相当于脚本注入,你可以百度一下"jsonp原理",这个函数的返回值就是你的data
至于支持这个现在来说应该不存在了吧,都是支持的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询