javascript
介绍一个JSONP 跨域访问代理API-yahooapis
你是否遇到了想利用AJAX訪問(wèn)一些公網(wǎng)API,但是你又不想建立自己的代理服務(wù),因?yàn)橛袝r(shí)我根本就沒(méi)打算涉及服務(wù)端任何代碼,但是討厭的瀏覽器的同源策略,阻止了我們的ajax調(diào)用。
比如我想訪問(wèn)一個(gè)天氣的restfull api,如果我直接去GET:
?$.get("http://m.weather.com.cn/data/101010100.html");
?
? ? 看見這問(wèn)題相信大家都不會(huì)陌生,也會(huì)很自然的得到解決方案,但是我這里真的不想touch任何服務(wù)端代碼,用jsonp吧,但是服務(wù)端沒(méi)實(shí)現(xiàn)契約。
在這里我是時(shí)候引入主角yahoo提供的jsonp代理:http://query.yahooapis.com/v1/public/yql
實(shí)現(xiàn)跨域訪問(wèn)代碼為:http://jsfiddle.net/whitewolf/4UDpf/9/
html:<script?type="text/javascript"?src="http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js"></script>
<div?id="content">
????
</div>
js:$(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)?{
????????$content.text(JSON.stringify(data.query.results));
????}?else?{
????????$content.text('no?such?code:?'?+?code);
????}
});
});
效果:
?
? ? ? 多的就不用說(shuō)了,jsonp原理我相信大家也很清楚。?
轉(zhuǎn)載于:https://www.cnblogs.com/whitewolf/archive/2012/12/01/2797240.html
總結(jié)
以上是生活随笔為你收集整理的介绍一个JSONP 跨域访问代理API-yahooapis的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何在MFC中读写配置文件
- 下一篇: 使用 Mashups4JSF 生成和消费