axios可以解决跨域访问的问题吗?
在vue2中使用的vue,到现在遇到跨域的问题,不能跨域访问。有办法解决吗?前提是必须使用axios。 还有,axios和vue-resource哪个好些?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
在vue2中使用的vue,到现在遇到跨域的问题,不能跨域访问。有办法解决吗?前提是必须使用axios。 还有,axios和vue-resource哪个好些?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
首先,用 axios 比较好,现在是 vue2 官方推荐,vue-resource 已经不再维护了。
见知乎回答:请问vue2官方推荐的Ajax插件axios地址是哪个呢?
然后, axios 的跨域问题,分以下几种情况:
1、 server 端不支持跨域,比如遇到下面的错误就是这种情况
解决方案:如果 server 端是自己开发的,那么修改相关代码支持跨域即可。如果不是自己开发的,那么可以自己写个后端转发该请求,用代理的方式实现。
2、 server 端支持跨域,但不能响应 OPTIONS 请求,比如在开发者工具中看到下图中的情况,说明 Nginx 不能响应 OPTIONS 请求。
出现 OPTIONS 请求的原因:
出自 HTTP访问控制(CORS)
解决方案如果 server 端也支持简单请求(见下方定义),特别是 axios POST请求时,默认使用 JSON 格式,改成 string 问题就解决了!官方推荐的修改方法;如果 server 端只支持 JSON 格式的 POST 请求,看看能不能修改 server 的配置,让它支持 OPTIONS,参考资料;如果 server 改不了,那就又只能自己写代理了。
================== 这个很管用
我遇到这个问题,前台不知道他们怎么设置的。后台代码贴出来给你们看看;问题解决了;
List<PubXtzdBo> pubXtzdBos = pubXtzdService.getPubXtzdNodesById(481L, null, 1);
总的来说,axios不支持jsonp,所以不能解决跨域问题,像楼上就是用的CORS(跨域资源共享)方案解决的跨域问题。
fetch,自带的方法window.fetch,发现也可以
跨域跟axios没什么关系,配置服务器的cros,或者jsonp,常用的跨域解决方案就可以了
参考此问题
https://segmentfault.com/q/10...
楼上说的很有道理,但是怕太长了楼主懒得看
简单来说,跨域是浏览器做的安全限制
实现跨域和具体用某个ajax库没有什么关系,具体可以搜索关键字"前端实现跨域的方法"大概有4种主要方法
相信楼主会找到答案
我也出现这个问题,但用jq的post居然可以...而axios的则报错...不知道是后端配置什么鬼搞的...郁闷无奈中