猿问

前后端分离WEB项目本地开发的跨域问题

开发环境: MAC OS, APACHE, PHP7.2, ThinkPHP5, vue.js 3.0, axios。

后端接口是由ThinkPHP5开发,返回数据的时候已经加上了跨域的消息头。部署在本地IP:192.168.0.3:80。
通过POSTMAN可以访问到接口返回的数据。

https://img.mukewang.com/5c8f3d2e0001147903610492.jpg

刚刚修改了想服务器返回的HEADER,错误依旧。
https://img.mukewang.com/5c8f3d2f00017f5b05290492.jpg

前端页面用的是通过vue-cli构建的项目,运行在192.168.0.3:8080。现在想在前端调用后端的接口,但是一直提示如下错误信息:

https://img3.mukewang.com/5c8f3d310001f1ea07900334.jpg

请问这种情况应该如何设置跨域?没有经验,昨天折腾了一晚上弄到今早5点都没弄好。。着急,请各位有经验的朋友多多指教,谢谢!

慕侠2389804
浏览 580回答 5
5回答

慕斯王

vue-cli里有代理设置。但是!!!怕麻烦的话,啥都别说了。不如试试这个,一劳永逸。可能是东半球解决跨域问题最简单粗暴的方法:1.chrome复制快捷方式。2.右键快捷方式,属性----目标改为以下(确保这些安装路径都是存在的) "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir=C:\Program Files (x86)\Google\Chrome\Application 3.优势:甚至可以本地页面调试线上接口。。。

翻阅古今

现在在开发阶段,让后端程序开放下跨域吧,解决吊Access-Control-Allow-Origin(console提示的错误,你应该是发了个post请求,但是属于复杂请求,浏览器发了个OPTIONS类型的请求,但是后端并没有处理该类型的请求),不太建议用jsonp这些解决

蝴蝶刀刀

或者使用nginx也可以的

慕森卡

const APIS = [ '/api/' ] const target = '域名' const onProxyReq = proxyReq => {} module.exports = APIS.reduce((result, curr) => { result[curr] = { target, onProxyReq, changeOrigin: true } return result }, {}) 然后在 config 配置 proxyTable 即可~
随时随地看视频慕课网APP
我要回答