標籤:api count code inpu span file weather result data
在使用 ajax 的時候,往往需要通過 ajax 跨域請求一些?
但是 XMLHTTPRequest 是不支援跨域的,所以產生了 JSONP 這個東西來解決跨域,當然解決跨域的方式有很多種....
第一種解決跨域:
<script type=‘text/javascript‘ >(function(window){ //AJAX擷取介面資訊 $(function(){ $.ajax({ // 豆瓣API介面 url:‘http://api.douban.com/v2/movie/in_theaters?count=2‘, dataType:"jsonp", jsonp:"callback", success:function(data){ console.log(data); } }); });})(window);</script>
這種解決跨域的方式,能夠解決一些常規的商務邏輯,但是如果請求:天氣的API介面就會有問題
url:‘http://www.weather.com.cn/data/sk/101010100.html‘
第二種解決跨域:
可以再本地的伺服器上擷取其他伺服器的資訊,在通過ajax請求本地服務來實現:
<?php header("content-type:text/html;charset=utf-8"); //php代理擷取天氣資訊 //跨域請求 //天氣預報介面 $url = "http://www.weather.com.cn/data/sk/101010100.html"; $cont = file_get_contents($url); echo $cont; ?>
接下來使用 ajax 去請求本地的這個PHP檔案即可:
<script type=‘text/javascript‘>$(‘input.submit‘).click(function(){ $.ajax({ url:"weather.php", async:true, success:function(result){ eval("var info="+result); console.log(info[‘weatherinfo‘][‘city‘]); } });});</script>
還有其他的方式來解決跨域,同樣是通過JSONP的方式,我們可以自己編寫JSONP檔案,來解決跨域問題:
ajax跨域終極解決辦法!