跨域请求

一、定义

跨域定义: 协议、域名、端口号有一个不一样就是跨域。

跨域(举例说明):跨域访问,简单来说就是 A 网站的 javascript 代码试图访问 B 网站,包括提交内容和获取内容。由于安全原因,跨域访问是被各大浏览器所默认禁止的,XmlHttpRequest也不例外。

二、跨域方式

1、jsonp

使用jsonp跨域方式即是使用不受同源策略限制的标签进行跨域,流程为(以script标签为例):

  1. 新建script对象。
  2. 将要进行跨域的域名端口方法名以及回调函数写在script的src属性中(将回调函数函数名写在参数中)。
  3. 将script动态插入dom树中。
  4. 写回调函数。
  5. 后台查出数据,调用回调方法。

2、Cors

Cross-origion resource sharing即是跨域资源共享,是一种允许当前域(origin)的资源(比如html/js/web service)被其他域(origin)的脚本请求访问的机制。

当使用XMLHttpRequest发送请求时,浏览器如果发现违反了同源策略就会自动加上一个请求头:origin,后端在接受到请求后确定响应后会在Response Headers中加入一个属性:Access-Control-Allow-Origin,值就是发起请求的源地址(http://127.0.0.1:8888),浏览器得到响应会进行判断Access-Control-Allow-Origin的值是否和当前的地址相同,只有匹配成功后才进行响应处理。

现代浏览器中和移动端都支持CORS(除了opera mini),IE下需要8+。

跨域方式

  1. 直接在ajax中进行访问。
  2. 在需要进行跨域访问的方法中进行判断,看请求头中是否包含“origion”。
  3. 如果包含,则拿到header中orgion的value(即请求域名地址),并给响应头"Access-Control-Allow-Origin"属性设置值。

3、nginx反向代理

此方法最为便利,前后端代码无需做特殊改变,只需在nginx.conf做配置,将本地请求地址转向真正实现请求的url地址。

跨域方式

  1. 在nginx.conf文件中配置(源域名地址下访问/apis/***开头的url地址 会自动将请求转向http://127.0.0.1:14444/***)。
  2. ajax中url加入以/api/开头的地址。

4、后台跨域(包含代理方式)

前端向本地后台发出请求,后台再向api服务器请求数据,然后再将请求到的数据返回给前端。

跨域方式

  1. 如需开启vpn则先开启vpn。
  2. 前台发请求。
  3. 后台使用httpClient类或者Proxy类进行请求。
  4. 后台将数据返回给前台。

参考:https://blog.csdn.net/github_37360787/article/details/54834789

https://blog.csdn.net/xyr05288/article/details/64125147

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值