vue-cli+webpack前端使用后台接口跨域问题的多种解决及其原理和产生原因


解决方式:

      

下载好工程后,找到config文件夹里的index.js文件

vue-cli+webpack前端使用后台接口跨域问题的多种解决及其原理和产生原因vue-cli+webpack前端使用后台接口跨域问题的多种解决及其原理和产生原因

然后就是把上图的target改成你的接口地址前面的那部分就好了,底下的^/api就是把前面那些替代成空字符串,接口就写替代的后面那部分路由地址就好了,不过我推荐不要用‘/api’还是用‘’空字符串代替,这样你部署到服务器的时候路由才不会出问题,不然有可能会出现问题,毕竟你前端代理在路由前面加了/api。在本地浏览器前面会替代的那部分会显示为localhost,其原理就是解决跨域问题三种方式中的设置代理


跨域所产生的原因:是由浏览器的同源策略引起的,所谓同源就是相同协议(http和https不同),相同域名,相同端口


解决方式: ①  jsonp(只适用于get方式,其实是历史遗留问题,也就是我们用script标签包裹着,就不会产生跨域)

                  ②  设置代理(也就是再写一个同源的后台脚本,利用这个脚本去获取远端数据,就不会产生跨域)

                  ③  后端处理,即XHR2(例如 php修改头)

                                         header(Access-control-Allow-Origin:  * ');   //*代表允许访问的来源(所有)

                                         header('Access-control-Allow-Method: POST,GET');  //允许访问的方式


同时这点也是面试时,喜欢问的,前端只需要扯设置代理就行了,不必要自己挖坑