JavaScript 跨域问题

导语 js 跨域JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。什么是跨域呢?简单的理解就是因为Javascript同源策略的限制,a com域名下的js无法操作b com或者c a com域名下的对象。如:www aseoe com
js 跨域
JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。
 
什么是跨域呢?
 
简单的理解就是因为Javascript同源策略的限制,a.com域名下的js无法操作b.com或者c.a.com域名下的对象。
如:www.aseoe.com/index.html 调用www.aseoe.com/service.php (非跨域)
www.aseoe.com/index.html 调用www.ancto.net/service.php (跨域)
www.aseoe.com/index.html 调用bbs.aseoe.com/service.php (跨域)
www.aseoe.com/index.html 调用www.aseoe.com:81/service.php (跨域)
www.aseoe.com/index.html 调用https://www.aseoe.com/service.php (跨域)

处理跨域方法一 — 代理

通过在同名的web服务器创建一个代理:
aseoe服务器(域名:www.aseoe.com)
ancto服务器(域名:www.ancto.net)
比如在aseoe的web服务器的后台
(www.aseoe.com/proxy-anctoservice.php)来调用ancto服务器
(www.ancto.net/service.php)的服务,然后再把响应结果返回给前端,
这样前端调用aseoe同域名的服务就和ancto的服务效果相同了
 
处理跨域方法二 — JSONP
 
JSONP可用于解决主流浏览器的跨域数据访问的问题。
在www.aseoe.com页面中:
<script>
function jsonp(json) {
alert(json["name"]);
}
</script>
<script src="http://www.ancto.net/jsonp.js"></script>
在www.ancto.net页面中:
jsonp({'name':Aseoe,'job':'前端'});
 
JSONP不支持POST请求
 
处理跨域方法三 — XHR2
 
HTML5提供的XMLHttpRequest Level2 已经实现了跨域访问以及其他的一些新功能
IE10以下的版本都不支持
在服务器做一些小小的改造即可:
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Methods:POST,GET');
 
http://www.aseoe.com/ true JavaScript 跨域问题 http://www.aseoe.com/show-12-651-1.html report <?php echo strlen($content) / 2; ?> js 跨域JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。什么是跨域呢?简单的理解就是因为Javascript同源策略的限制,a com域名下的js无法操作b com或者c a com域名下的对象。如:www aseoe com
TAG:javascript js 跨域
本站欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明: 文章转载自:爱思资源网 http://www.aseoe.com/show-12-651-1.html

[前端插件推荐] Plugin

1 2 3 4
  • jQuery实现逐字逐句显示插件l-by-l.min.js
  • jQuery带方向感知的鼠标滑过图片边框特效插件
  • jQuery HotKeys监听键盘按下事件keydown插件
  • 响应式无限轮播jQuery旋转木马插件
响应式无限轮播jQuery旋转木马插件
web前端开发
爱思资源网 Copyright 2012-2014 Www.Aseoe.Com All rights reserved.(晋ICP备13001436号-1)