vue本地代理成功,线上nginx如何使用

 proxy: {
        '/api': {
          // 目标 API 地址
          // http://192.168.124.231:8709/api/
          target: 'http://192.168.124.231:8709/', // 接口的域名
          ws: false,
          // 将主机标头的原点更改为目标URL
          changeOrigin: true
        },
        '/v1':{
          target:'https://apis.map.qq.com/ws/place',
          changeOrigin: true,
        }

nginx配置代码

     location /v1 {
        proxy_pass  https://apis.map.qq.com/ws/place;
    }

腾讯地图请求的返回 1. message: “错误的请求路径”
请问我在nginx配置对吗?
为什么在vue.config.js配置启动后可以成功请求?
线上就不行了?
各位高手有解决方法吗?

解决方法:

你把 proxy_pass https://apis.map.qq.com/ws/place; 改成 proxy_pass https://www.lilnong.top/cors/1010000038749540; 然后看看响应给你地址是什么?

很大可能性就是少了一级 v1,或者多了一级 v1

厉害啊,大佬你这个地址lilnong.top 返回响应是如何实现的?
经过我调试一下 你说得对,少了一级v1的

  proxy_pass      https://apis.map.qq.com/ws/place/v1; 

这样 线上请求正常 了

vue那个代理,本来就是把v1开始的地址拼接到target上,我自己本地不需要v1那段的时候,都是用pathRewrite把他去除掉。nginx是把location匹配的后面的部分转发到代理的路径上

发表评论

邮箱地址不会被公开。 必填项已用*标注