您的位置:首页 > 其它

Ajax跨域访问问题

2015-10-15 16:40 253 查看

 什么是跨域访问问题

跨域访问简称为跨域,在一个域名下的JavaScript不能够访问其他网站的资源. 简单地理解就是因为JavaScript同源策略的限制,a.com 域名下的js无法操作b.com或是c.a.com域名下的资源(html,css,javascript等)


如何解决该问题

例子:天气预报接口

使用中间服务器解决

A服务器网站中index.html的Javascript发送Ajax请求给WebServer1网站中的PHP程序,由PHP程序获取B服务器网站中的数据,再将获取到的数据作为Ajax的响应内容.

对于浏览器上的Index.html来说,只知道访问的是WebServer1中的PHP程序,并不知道PHP程序访问到WebServer2上的数据.

通俗一点就是浏览器请求自己的服务器,然后自己的服务器再去请求第三方服务器(PHP代码可以跨域)

Javascript代码:

<script type="text/javascript" src="../ajax.js"></script>

    <script type="text/javascript">

        window.onload = function(){

            var ajax = createAjax();

            ajax.open('GET','getwearther.php');

            ajax.onreadystatechange = function(){

                if(ajax.readyState==4&&ajax.status==200){

                    eval("var result = "+ ajax.responseText);

                    var info = result.weatherinfo;

                    var html = "城市:"+info.city+",最高温度:"+info.temp1+",最低温度:"+ info.temp2+"天气情况:"+info.weather;

                    $('result').innerHTML = html;

                }

            }

            ajax.send();

        }

    </script>

PHP代码:

echo file_get_contents("http://www.weather.com.cn/data/cityinfo/101010100.html");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: