测试跨域

目录:

1、什么是跨域

2、常见跨域场景

3、跨域处理办法

4、跨域自测方法

5、关于跨域的说明

https://howtodoinjava.com/spring5/webmvc/spring-mvc-cors-configuration/

正文

1、什么是跨域

跨源资源共享 简称CORS
CORS (Cross-origin resource sharing) allows a webpage to request additional resources into browser from other domains e.g. fonts, CSS or static images from CDN. CORS helps in serving web content from multiple domains into browsers who usually have the same-origin security policy.

都在说跨域,为什么postman能访问接口,而浏览器就不行呢?这里需要理解什么是跨域,跨域是指的当前资源访问其他资源时发起的http请求由于安全原因(由于同源策略,域名、协议。端口中只要有一个不同就不同源),浏览器限制了这些请求的正常访问,特别需要注意的是这些发生在浏览器中。而通过postman等工具调用接口时,只是简单的访问一个资源,并不存在资源的相互访问。

跨域并非一定要解决的问题,只有需要时才应该处理,无缘由的处理跨域等于随意破坏系统的安全性。

2、常见跨域场景

对于前后端分离的项目,前端往往会调用多个不同域名服务器下的资源,由于浏览器的安全策略,限制了这种资源访问方式,导致跨域问题发生。

3、跨域处理办法

根据springboot、springmvc等项目不同具体决绝。
常见2种方法:具体内容非本文重点,不做详述。

1》跨域过滤器
2》使用jsonp

4、跨域自测方法

1》首先构建跨域场景

修改hosts文件,给127.0.0.1 绑定多个不同的域名,如:
127.0.0.1 test.com
127.0.0.1 test1.com

这样,就可以通过test.com、test1.com以及localhost三个域名访问 自己的同一个工程了。

然后,首先在浏览器地址栏中直接访问自己工程的get方法

在这里插入图片描述

2》使用测试工具测试

构建从当前localhost地址跨域访问http://test.com地址的场景:
在(浏览器同一个页面)F12打开【开发者工具】,在【Console】可以直接输入js代码测试:
var xhr = new XMLHttpRequest();
xhr.open(‘GET’, ‘http://test.com:8761/producer/get’);
xhr.send(null);
xhr.onload = function(e) {
var xhr = e.target;
console.log(xhr.responseText);
}

如下图:
回车,结果如下(当前未做跨域处理),如下图跨域错误
在这里插入图片描述

3》成功跨域测试

之后我们通过做了跨域处理的网关[localhost:8756]测试,可实现跨域正常访问
如下图:
其中地址栏使用test.com:8756作为域名访问
cosole控制台使用test1.com:8756作为域名访问

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值