博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
跨域问题
阅读量:6673 次
发布时间:2019-06-25

本文共 1313 字,大约阅读时间需要 4 分钟。

同源:同域名/同端口/同协议

 http://baidu.com:8080?user=name&pwd=password

http:协议

baidu.com:域名

8080:端口

user=name&pwd=password:地址参数

为什么跨域:

  浏览器同源策略:一是针对接口的请求,二是:针对DOM的查询

  为什么要有同源策略:

    针对接口的请求:

      1:cookie用来处理登录等场景(让服务器知道是谁发出的请求),验证通过响应头加入Set-Cookie字段,下次再发请求,浏览器会自动将cookie附加在HTTP请求的头字段cookie中,服务器知道该用户已经登陆过。

      2:操作登陆某一个网站A,登陆成功后

      3:同时点击进另一个网站B。

      4:假如没有同源策略限制,A的cookie将会附加在HTTP请求头字段Cookie中,向B的服务器保存cookie;这就是传说中的CSRF攻击

      5:当然即使有同源策略,明文cookie还是一样能拿下来。但是服务端可以设置httpOnly,使得前端无法操作cookie

    Dom查询:

  同源策略是浏览器是浏览器最基本的安全机制

  开发中解决浏览器同源策略方案:

    跨域实现过程:(1)从A请求B.php,B.php的服务器返回一个header:Access-Control-Allow-Origin: A(*)

           (2)如果请求的url是aspx页面,则需要在aspx页面中添加代码:Response.AddHeader("Access-Control-Allow-Origin", "*");

           (3)如果请求的url是PHP页面,则需要在PHP页面中添加代码:header("Access-Control-Allow-Origin: *");

           (4)如果请求的url是静态的html页面,则需要在页面中添加meta标签代码:<meta http-equiv="Access-Control-Allow-Origin" content="*" />

    如果以上还不行,加上

            //指定其他域名访问:header('Access-Control-Allow-Origin:*');  

            //响应类型:header('Access-Control-Allow-Methods:POST');

            //响应头设置:header('Access-Control-Allow-Headers:x-requested-with,content-type');

            //前端处理post请求: headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' },

转载于:https://www.cnblogs.com/shui1993/p/9926034.html

你可能感兴趣的文章
如何判断一个以太坊地址是不是合约?
查看>>
逆袭!? 期待下一个“BCH”出现
查看>>
opengl es3.0学习篇五:图元装配跟光栅化
查看>>
Qt之添加菜单项&状态栏
查看>>
负载均衡在分布式架构中是怎么玩起来的?
查看>>
Java程序员在工作的同时应该具备什么样的能力?
查看>>
Dubbo深入分析之Cluster层
查看>>
分析Padavan源代码,二
查看>>
WordPress的WPML外挂出问题恐出现安全漏洞
查看>>
Django 调试技巧
查看>>
Spring Boot和thymeleaf , freemarker , jsp三个前端模块的运用
查看>>
phalcon-入门篇3(优美的URL与Config)
查看>>
单表60亿记录等大数据场景的MySQL优化和运维之道
查看>>
sql学习笔记
查看>>
maven编译时出现There are test failures
查看>>
SpringBoot | 第三十一章:MongoDB的集成和使用
查看>>
网络学习笔记2
查看>>
JPA--多对多关系
查看>>
配置sharepoint 2010错误:Microsoft.SharePoint.Upgrad...
查看>>
UUID 生成算法JS版
查看>>