- 57
- 0
本地用vue已经建好了,现在需要读数据,公司后台给了一个接口文档,没怎么看懂。
我现在本机是localhost,有公司服务器内网地址,请求时出了2个错:
1.OPTIONS http://xxx.xxx.xxx.xxx:9005/api/FlightInfo/FlightInfoSearch 405 (Method Not Allowed)
2.Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access. The response had HTTP status code 405.
我的axios配置有baseURL、timeout和headers'Content-Type' : 'application/x-www-form-urlencoded'
搜了资料,解决方法一是:“后台设置:'Access-Control-Allow-Origin':'*'”;
方法二是:
import axios from 'axios';
import qs from 'qs';
axios.post('http://www.xyz.com/request', qs.stringify(params))
.then(response => {
console.log(response);
})
.catch(err => {
console.log(err);
});
但是我确实不知道params是什么,我现在就想点一个按钮出来所有的数据,请大神指导!
- 共 0 条
- 全部回答
-
愛戀ヾ最傷人 普通会员 1楼
在使用 Axios 跨域请求内网数据时,可以采取以下方法解决跨域问题:
- JSONP(JSON with Padding):JSONP 通过在请求体中包含一个查询参数(callback)来实现跨域请求。但是这种方法有一个缺点,即服务器端需要处理额外的 JSONP 参数,而且在前端页面中需要将请求头设置为 "Access-Control-Allow-Origin" 为 "*"。
javascript // 通过在请求体中包含一个查询参数来实现跨域请求 function getServerSideData(url) { var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.setRequestHeader("Access-Control-Allow-Origin", "*"); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { var data = JSON.parse(xhr.responseText); console.log(data); } }; xhr.send(); }- CORS(Cross-Origin Resource Sharing):在浏览器的设置中,可以允许不同源的请求。这种方法需要服务器端设置允许跨域的策略。
javascript // 在服务器端设置允许跨域的策略 window.xmlHttpRequest = function(options) { var xhr = new XMLHttpRequest(); xhr.open("GET", "https://example.com/data", true); xhr.setRequestHeader("Access-Control-Allow-Origin", "*"); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { console.log(xhr.responseText); } }; xhr.send(); };- 使用代理:通过将请求代理到服务器端,可以绕过服务器端的代理设置。但是这种方法需要服务器端处理额外的请求,而且在前端页面中需要将请求头设置为 "Access-Control-Allow-Origin" 为 "*"。
javascript // 使用代理 function getServerSideData(url) { var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.setRequestHeader("Access-Control-Allow-Origin", "*"); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { var data = JSON.parse(xhr.responseText); console.log(data); } }; xhr.send(); }以上方法都可以解决使用 Axios 跨域请求内网数据的问题。在实际使用中,可以根据需要选择合适的方案。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
