Refused to display 'https://au.cnooc.com.cn/' in a frame because it set 'X-Frame-Options' to 'sameorigin'.在vue2中怎么解决
时间: 2024-11-12 17:15:02 浏览: 30
这个错误提示表示网页`https://au.cnooc.com.cn/`设置了`X-Frame-Options`头信息,禁止在其他域下的页面(如iframe)中嵌套显示。在Vue2中处理这种跨域引用的问题,通常需要服务器端配合:
1. **服务器端配置**:如果你有对网站的控制权限,可以尝试更新服务器设置,允许来自特定域名的跨域请求。在Node.js环境下,你可以通过修改Express、Nginx等服务的CORS策略,添加如下代码:
```javascript
// Node.js (Express)
app.use(cors({
origin: 'http://your-vue-app-url',
credentials: true,
}));
// Nginx
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Credentials true;
```
将`your-vue-app-url`替换为你应用的实际URL。
2. **Vue2客户端代理**:如果无法更改服务器设置,可以在前端使用axios等库的拦截器功能创建一个代理,让跨域请求看起来像是从同源发出的:
```javascript
import axios from 'axios';
axios.interceptors.request.use(config => {
if (process.env.NODE_ENV === 'development') {
config.url = `http://localhost:8080${config.url}`;
}
return config;
}, error => Promise.reject(error));
```
这里假设你的Vue应用运行在本地开发环境(`http://localhost:8080`),你需要根据实际情况调整。
记住,对于生产环境,你应该始终依赖于正确的服务器设置来处理跨域问题,上述方法仅适用于开发阶段临时测试。
阅读全文