关于跨域的问题

        1. 什么是跨域?

        就是在一个域名内访问另一个域名的资源 , 跨域的问题主要是因为同源策略造成的 同源策略就是一种约定 是浏览器的安全功能 . 虽然发送ajax跨域会有返回值 但是浏览器会觉得不安全给你拦截下来了 就好像你去了高风险地区现在要回家 , 但是不让你回怕有危险差不多

跨域就是三者不同源的原因 何为三者? 就是 协议 , 域名 , 端口 只要一个不一样就是跨域 , 给大家举个小例子

        http://www.857.com/index.html 和 http://www.857.com/index.html 不是跨域 三者都是相同的

        http://www.aaa.com:3000/index.html 和 https://www.aaa.com:3000/index.html 跨域 协议不相同

        http://www.aaa.com/index.html 和 http://www.bbb.com/index.html 这个就是域名不用 是跨域

        http://www.aaa.com:3009/index.html 和 http://www.aaa.com:8080/index.html 跨域 因为端口号不相同

        小注意点 : localhost:3000/index.html  和  127.0.0.1:3000/index.html 虽然都是指本机 但是要注意 这俩者之间是跨域

        2.如何解决跨域的问题

我这里使用的一个第三方的包  可以很方便的解决跨域问题

  • CORS

什么是cors : CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。

CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10(ie8通过XDomainRequest能支持CORS)。

跨域错误说明 : 

 

        1.自己手写 : 通过在被请求的路由中设置header头,可以实现跨域。

         2.使用cors : 因为是一个npm包 所以我们需要下载cors , 当做express中的中间件,注意代码应该放在顶部

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值