zoukankan      html  css  js  c++  java
  • ajax跨域终极解决办法!

    在使用 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文件,来解决跨域问题:

  • 相关阅读:
    虚拟化、云计算与超融合的简单总结
    期货量化总结与思考
    易盛内外通用版交易API转websocket
    门诊叫号系统系列-1.语音叫号 .net c#
    六线顺上黑马选股和切割线选股法该如何操作?
    我的总结--强势股的短线战法精髓
    MACD头肩顶/底 = 驱动五浪
    有效突破的三三原则
    5日均线--攻击线
    10日均线--操盘线
  • 原文地址:https://www.cnblogs.com/e0yu/p/7232892.html
Copyright © 2011-2022 走看看