ajax跨域終極解決辦法!
阿新 • • 發佈:2017-07-25
data val 跨域請求 clas 自己 信息 跨域問題 cal header
在使用 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跨域終極解決辦法!