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");
相关文章推荐
- python lamba表达式
- Windows7系统下安装OpenSSL
- listview 滑动混乱
- Android性能专项测试之Allocation Tracker(Device Monitor)
- c# wince 启动隐藏窗体
- Android中使用dimen定义尺寸
- log4j常用配置以及日志文件保存位置
- 2015 10月14日 工作计划与执行
- redis优化配置和redis.conf说明
- 3.Swift初探-基本语法
- 最强开发资源平台大合集
- iphone使用keychain来存取用户名和密码
- Android性能专项测试之Heap Viewer工具
- 用Python和OpenCV创建一个图片搜索引擎的完整指南
- C语言基础
- 151015总结
- gulp使用简要说明
- 又是一天,今后的发展方向应该是什么样的呢
- import 导包三种方法
- memcached安装配置及保存php session于memcached