JQuery ajax json怎样 获取外网数据 jsonjqueryajaxjavascript 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 跨域使用jsonp吧如下<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title>注册</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type ="text/javascript" src="jquery.js"></script> </head><body><script type="text/javascript" src="http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js"></script> <div id="content"> </div> <script>$(function(){ $.getJSON("http://query.yahooapis.com/v1/public/yql", { q: "select * from json where url='http://m.weather.com.cn/data/101010100.html'", format: "json" }, function(data) { var $content = $("#content") if (data.query.results) { var result = JSON.stringify(data.query.results); $content.text(result); var obj = eval('('+result+')'); alert(obj.weatherinfo.city); } else { $content.text('no such code: ' + code); } }); });</script></body><script> </script></html> 跨域了你那个页面,又没提供jsonp回调,只能做代理 代理要用服务器支持的,代理页面用服务器端的xhr对象捉去远程数据分析后输出,ajax请求这个代理页面,参考这个:使用新浪天气预报接口获取天气预报信息 还有一个比较不严谨的做法。自己写个servlet,然后用URL类,解析你那个页面的所有元素。把想要数据解析出来。前台ajax调自己这个servlet。 这个原因是浏览器的安全限制了js的跨域ajax访问,你可以用服务器后台去访问那个数据url,服务器后台用httpclient这样的东西,然后服务器后台开一个本地的url接口让你的页面访问。 不是吧难道你不能访问http://query.yahooapis.com/v1/public/yql以及配置jquery的正确路径? $(function(){ $.ajax({ type:"post", url:"http://m.weather.com.cn/data/101010100.html", //中央台天气预报 dataType:"jsonp",//这样吗? success:function(data){ var test = eval(data); alert(1); //这个都没有反应啊T_T alert(test.weatherinfo.city); } });}) 有一点不明白,这个是必须的吗?难道那不是针对yahoo的?请赐教啊!还有,必须要有后台代码吗?初学,如果问题白痴,勿喷啊,望赐教! jsonp不是这样用的。jsonp不是个标准的东东,不建议用。楼主可以换个思路,写个专门的服务去访问其他网站的服务,也就是把天气预报的服务在你的网站进行一次包装,然后在页面是用ajax调用自己的服务也可以达到效果。 你确定你这个不是针对yahoo的吗?我用的是中央气象台的API,这个通用的么? $.getJSON("http://query.yahooapis.com/v1/public/yql", { q: "select * from json where url='http://m.weather.com.cn/data/101010100.html'"这是使用雅虎的服务做代理,取到值然后转成json,数据的来源还是这个http://m.weather.com.cn/data/101010100.html 可以自己写一个后台,通过HttpWebRequest类获取指定域名下页面元素,然后再进行过滤提取你想要的内容,拼接成json结构传到前台,你就可以直接进行操作了。 谢谢,明白了,我得到数据了,给您纠正几个地方1.http://query.yahooapis.com/v1/public/yql改成http://query.yahooapis.com/v1/public/yql?callback=?2.data.query.results改成data.results我得到的数据成xml的了,不过总算有数据了,谢谢!!那个xml的可以转json吗? 事实证明,您就一个地方疏忽了http://query.yahooapis.com/v1/public/yql改成http://query.yahooapis.com/v1/public/yql?callback=?就行了谢谢啊!!! 事实证明,您就一个地方疏忽了http://query.yahooapis.com/v1/public/yql改成http://query.yahooapis.com/v1/public/yql?callback=?就行了谢谢啊!!!刚才测试,IE必须加上callback=?,火狐和谷歌浏览器可以不加。 楼主只需将post改为get就可以了!! json提交问题 this._io = open || false是什么意思 页面用history.go(N)返回上一页 出现"网页已过期" 如何解决 js简单问题 如何在一个div中的拖动overflow-x ,使另一个div同步移动 关于产生两级联动的下拉框的产生问题 请问:页面跳转的问题,有点菜!^_^送分 如何实现图片在网页中滚动? 提交失败怎么恢复到先前的输入值? 请教一下,我想遍历每个 .box ,当鼠标经过时才出现关闭按钮。但是出现了错误 JMEditor开源在线公式编辑器-开发组件说明 jquery 实现 网页tab 效果!
如下<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>注册</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type ="text/javascript" src="jquery.js"></script>
</head>
<body>
<script type="text/javascript" src="http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js"></script>
<div id="content">
</div>
<script>
$(function(){
$.getJSON("http://query.yahooapis.com/v1/public/yql", {
q: "select * from json where url='http://m.weather.com.cn/data/101010100.html'",
format: "json"
}, function(data) {
var $content = $("#content")
if (data.query.results) {
var result = JSON.stringify(data.query.results);
$content.text(result);
var obj = eval('('+result+')');
alert(obj.weatherinfo.city);
} else {
$content.text('no such code: ' + code);
}
});
});
</script></body>
<script>
</script>
</html>
$.ajax({
type:"post",
url:"http://m.weather.com.cn/data/101010100.html", //中央台天气预报
dataType:"jsonp",//这样吗?
success:function(data){
var test = eval(data);
alert(1); //这个都没有反应啊T_T
alert(test.weatherinfo.city);
}
});
})
有一点不明白,这个是必须的吗?难道那不是针对yahoo的?请赐教啊!还有,必须要有后台代码吗?初学,如果问题白痴,勿喷啊,望赐教!
jsonp不是个标准的东东,不建议用。楼主可以换个思路,写个专门的服务去访问其他网站的服务,也就是把天气预报的服务在你的网站进行一次包装,然后在页面是用ajax调用自己的服务也可以达到效果。
你确定你这个不是针对yahoo的吗?我用的是中央气象台的API,这个通用的么?
q: "select * from json where url='http://m.weather.com.cn/data/101010100.html'"
这是使用雅虎的服务做代理,取到值然后转成json,数据的来源还是这个http://m.weather.com.cn/data/101010100.html
1.http://query.yahooapis.com/v1/public/yql改成http://query.yahooapis.com/v1/public/yql?callback=?
2.data.query.results改成data.results
我得到的数据成xml的了,不过总算有数据了,谢谢!!那个xml的可以转json吗?
谢谢啊!!!
谢谢啊!!!
刚才测试,IE必须加上callback=?,火狐和谷歌浏览器可以不加。