vue调用网络上的第三方api,本地开发环境正常,但是打包部署到生产环境时,第三方代理的地址前面使用的是部署的服务地址,而不是第三方api公网访问地址,所以导致接口请求直接404,而如果对环境判断,生产环境直接请求公网地址,会造成cors跨域,请问该如何解决
需要让你们的后端做一下接口透传
看下请求的 url地址 是否正确
部署后的接口访问地址,前面的访问服务是部署的服务地址,而不是第三方的服务地址,所以打包后接口访问404了,比如我调用的第三方api地址是http://www.ljst.com/list/api?a=1&b1=kb,而我本地开发的代理可以访问,但是部署到生产环境后,访问地址指向的是生产环境地址,比如我生产环境地址是http://192.168.2.44:8989,那么部署后访问的第三方api,访问请求就是http://192.168.2.44:8989/list/api?a=1&b1=kb,所以导致接口请求404,而如果我前端做生产环境直接请求第三方公网地址http://www.ljst.com/list/api?a=1&b1=kb,会造成cors跨域,referer源地址指向不对。
后端没理我,哎,想了一下用jsonp做第三方资源请求访问,但是感觉原始jsonp创建调用资源好low,网上找了一下,vue网上有封装的jsonp依赖包——vue-jsonp,已解决。
代理啊
一般使用ng 代理
环境变量可以创建多个吧,不一样的接口调用不一样的环境变量拼接在请求路径上应该可以。
前端的环境变量是可以根据生产环境和开发环境判断,不过这里的问题是调用网络上的第三方开源api接口,打包后的请求地址不是开源的api地址,所以404,开发环境前端代理可以请求的到,可是生产部署的话,请求源地址就无法请求了,ngnix的话,本人仅限于了解这个东西,没有应用过,知道是运维部署做网络请求代理用的,但是项目是远程协同的,人员沟通起来不方便,所以我这边前端可以解决的话,就没麻烦他们弄这个。
ng 可以根据不能接口类型代理到不同接口api 这个就是前端的部署的时候配置的