为什么两台服务器之间的请求不会产生跨域问题
时间: 2023-05-25 19:06:48 浏览: 683
跨域问题是由浏览器的同源策略所导致的,跨域问题的出现是因为不同源的网页之间不允许交互操作。而两台服务器之间的请求并不是通过浏览器进行的,而是通过网络传输协议(通常是HTTP或TCP协议)进行的,因此不存在跨域问题。
相关问题
shiro跨域请求两次
根据提供的引用内容,可以得知在使用shiro进行跨域请求时,会出现请求两次的问题。这是因为后台采用了token检验机制,前台发送请求必须将token放到request header中,而请求头中携带自定义参数,浏览器就认为请求是复杂跨域请求,所以浏览器在真正请求之前会发送一次预检请求,检测服务器是否支持真实请求进行跨域访问。
解决方案如下:
1.在后台代码中添加如下配置,允许跨域请求:
```java
// 允许跨域请求
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with,Authorization");
```
2.在shiro配置文件中添加如下配置,允许OPTIONS请求通过:
```xml
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager"/>
<property name="loginUrl" value="/login"/>
<property name="successUrl" value="/index"/>
<property name="unauthorizedUrl" value="/unauthorized"/>
<property name="filters">
<util:map>
<entry key="authc">
<bean class="org.apache.shiro.web.filter.authc.PassThruAuthenticationFilter"/>
</entry>
</util:map>
</property>
<property name="filterChainDefinitions">
<value>
/login = anon
/logout = logout
/** = authc
</value>
</property>
</bean>
```
3.在前端代码中添加如下配置,允许携带自定义参数:
```javascript
axios.defaults.headers.common['Authorization'] = 'Bearer ' + token;
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
axios.defaults.withCredentials = true;
```
vue+ajax+php 项目在win7上面运行为什么会出现跨域问题
跨域问题是由于浏览器的同源策略所导致的。同源策略是浏览器的一种安全策略,目的是防止恶意网站窃取用户的数据。
同源指的是协议、域名、端口号都相同。如果协议、域名或端口号有一个不同,就会出现跨域问题。
在Vue + Ajax + PHP项目中,如果前端代码运行在Win7上,而后端代码运行在另一台服务器上,由于协议、域名或端口号不同,就会出现跨域问题。
解决跨域问题有多种方法,以下是两种常用的方法:
1.使用代理服务器
在前端代码中,将Ajax请求发送到同源的代理服务器上,由代理服务器将请求转发到后端服务器。这样就可以绕过同源策略,解决跨域问题。常用的代理服务器有Nginx、Apache等。
2.在后端代码中设置响应头
在后端代码中,设置Access-Control-Allow-Origin响应头,允许指定的域名访问后端接口。例如,如果前端代码运行在http://localhost:8080上,可以在后端代码中设置以下响应头:
```
header('Access-Control-Allow-Origin: http://localhost:8080');
```
这样就允许http://localhost:8080的前端代码访问后端接口,解决跨域问题。
需要注意的是,在生产环境中,应该限制Access-Control-Allow-Origin的值,只允许指定的域名访问后端接口,以保证安全性。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)