前端跨域问题解析

搞前段,不玩跨域,基本上不算是前端

首先看一个帖子:

http://stackoverflow.com/questions/1481251/what-does-document-domain-document-domain-do

我翻译一下帖子里面用到的domain大法的原理

document.domain = document.domain

页面上有一个主页面,我们称之为top.html,里面ifream内嵌了一个other.html,如果他们两个窗口之间进行交互,就会跨域,因为域名不同。

如何让他们两个域相同呢(域是指域名+端口号),这个帖子就解释了这个domain的原理

不要觉得这句话是瞎写,它并不简简单单的为了把一个自己的变量赋值给自己,而是为了改写浏览器上面的端口号,由80全部改为null,首先top.html利用document.domain = document.domain来改写自己的('example.com', 80) =》 ('example.com', null),之后它的子ifream再来一句document.domain = document.domain来改写自己的('example.com', 80) =》 ('example.com', null),从而达到top.html域为example.com:null,other.html的域为example.com:null,OK了,俩一致了。

@落雨
2016年10月10日20:04:28

时间: 2024-07-28 13:22:11

前端跨域问题解析的相关文章

前端跨域请求原理及实践

一. 跨域请求的含义 浏览器的同源策略,出于防范跨站脚本的攻击,禁止客户端脚本(如 JavaScript)对不同域的服务进行跨站调用. 一般的,只要网站的 协议名protocol. 主机host. 端口号port 这三个中的任意一个不同,网站间的数据请求与传输便构成了跨域调用.这也是我们下面实践的理论基础.我们利用 NodeJs 创建了两个服务器,分别监听 3000. 3001 端口(下面简称 服务器3000 与 服务器3001 ),由于端口号不一样,这两个服务器以及服务器上页面通信构成了跨域请

前端跨域整理

前言 原文地址:前端跨域总结 博主博客地址:Damonare的个人博客 相信每一个前端er对于跨域这两个字都不会陌生,在实际项目中应用也是比较多的.但跨域方法的多种多样实在让人目不暇接.老规矩,碰到这种情况,就只能自己总结一篇博客,作为记录. 正文 1. 什么是跨域? 跨域一词从字面意思看,就是跨域名嘛,但实际上跨域的范围绝对不止那么狭隘.具体概念如下:只要协议.域名.端口有任何一个不同,都被当作是不同的域.之所以会产生跨域这个问题呢,其实也很容易想明白,要是随便引用外部文件,不同标签下的页面引

有人教下怎么前端跨域么,不用ajax

问题描述 有人教下怎么前端跨域么,不用ajax 我试过2种: 第一种: var xmlhttp = new XMLHttpRequest(); if (!xmlhttp.setRequestHeader) { xmlhttp = window.XMLHttpRequest(); } xmlhttp.onreadystatechange = function() { if (this.readyState == 1) { this.setRequestHeader("Access-Control-

解决前端跨域问题方案汇总_javascript技巧

1.同源策略如下: URL 说明 是否允许通信 http://www.a.com/a.js http://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.js http://www.a.com/script/b.js 同一域名下不同文件夹 允许 http://www.a.com:8000/a.js http://www.a.com/b.js 同一域名,不同端口 不允许 http://www.a.com/a.js https://www.a.com/b

REST API之前端跨域访问

1.新建并运行一个 NodeJS的server,端口为:3000.暴露一个API, URL为http://localhost:3000/users/.以下为该API的实现: users.js var express = require('express'); var router = express.Router(); /* GET users listing. */ router.get('/', function(req, res) { res.send('respond with a re

前端跨域问题之----CORS详解

CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing). 它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制. 本文详细介绍CORS的内部机制. 一.简介 CORS需要浏览器和服务器同时支持.目前,所有浏览器都支持该功能,IE浏览器不能低于IE10. 整个CORS通信过程,都是浏览器自动完成,不需要用户参与.对于开发者来说,CORS通信与同源的AJAX通信没有差别, 代码完全一样.

js前端解决跨域问题的8种方案(最新最全)_javascript技巧

1.同源策略如下: URL 说明 是否允许通信 http://www.a.com/a.jshttp://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.jshttp://www.a.com/script/b.js 同一域名下不同文件夹 允许 http://www.a.com:8000/a.js http://www.a.com/b.js 同一域名,不同端口 不允许 http://www.a.com/a.js https://www.a.com/b.j

探讨跨域请求资源的几种方式

什么是跨域 JSONP proxy代理 cors xdr 由于浏览器同源策略,凡是发送请求url的协议.域名.端口三者之间任意一与当前页面地址不同即为跨域.具体可以查看下表(来源) JSONP 这种方式主要是通过动态插入一个script标签.浏览器对script的资源引用没有同源限制,同时资源加载到页面后会立即执行(没有阻塞的情况下). <script> var _script = document.createElement('script'); _script.type = "t

JavaScript两种跨域技术全面介绍_javascript技巧

这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容. JavaScript这个安全策略在进行多iframe或多窗口编程.以及Ajax编程时显得尤为重要.根据这个策略,在baidu.com下的页面中包含的JavaScript代码,不能访问在google.com域名下的页面内容:甚至不同的子域名之间的页面也不能通过JavaScript代码互相访问.对于Ajax的影响在于,通过XMLHttpRequest实现的Ajax请