1. 程式人生 > >ajax跨域終極解決辦法!

ajax跨域終極解決辦法!

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跨域終極解決辦法!