跨域的概念,以及如何解决跨域问题一些方案,使用于c#,php,java等

1.什么是跨域:

当两个不同的域名资源,端口,协议进行交互时,如果域名(www.123456.com),端口(8080)或协议(http)有一个不同时,意味着这两个交互的资源,域不同。

域名:

主域名:www.baidu.com/www.sina.com

子域名:www.866.baidu.com/www.444.baidu.com

域名和ip:www.baidu.com/127.0.0.1

端口:(8080/8081)

协议:(http/https)

当两个不同域的资源相互交互,当请求发送后,浏览前不会正确响应返回的内容。(据说端口不同某些情况下也可正常响应,我没试)

跨域限制
1、无法读取非同源网页的 Cookie、LocalStorage 和 IndexedDB
2、无法接触非同源网页的 DOM
3、无法向非同源地址发送 AJAX 请求(可以发送,但浏览器会拒绝接受响应)

2.如何解决跨域问题,这个是我用的解决方式:

在后台方法头部手工加入处理跨域部分代码

1.

         #region 处理跨域
            base.HttpContext.Response.Headers.Add("Access-Control-Allow-Origin", "*");
            base.HttpContext.Response.Headers.Add("Access-Control-Allow-Headers", "x-auth-token,Origin,Access-Token,X-Requested-With,Content-Type, Accept");
            base.HttpContext.Response.Headers.Add("Access-Control-Allow-Methods", "POST,GET,OPTIONS,DELETE,PUT");
            #endregion

2.第二种方法我没试

document.domain【实现不同window之间的相互访问和操作】

且只能适用于主域相同子域不同的情况;

 


关键点:window.name在页面的生命周期里共享一个window.name;
兼容性:所有浏览器都支持;
优点:
 最简单的利用了浏览器的特性来做到不同域之间的数据传递;
 不需要前端和后端的特殊配制;
缺点:
 大小限制:window.name最大size是2M左右,不同浏览器中会有不同约定;
 安全性:当前页面所有window都可以修改,很不安全;
 数据类型:传递数据只能限于字符串,如果是对象或者其他会自动被转化为字符串,如下;
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值