问题:为什么我的生产站点的域 URL 以我的请求 URL 为前缀?
这很可能是 Azure 部署问题,因为serve -s dist
在本地运行时不会发送带有前缀 URL 的请求。
背景
我在用着:
- .NET 网络 API
- Azure 应用服务
- "npm": "^6.14.5",
- "vue": "^2.6.11",
- "vue-router": "^3.1.6",
- "vuex": "^3.1.3",
- "axios": "^0.19.2",
- 未设置 baseURL
- 未使用代理表
地方发展正在发生什么
我使用以下两种方式调用我的 API,并且它们都使用正确的相应请求 URL 正常工作。
axios .post( "https://API.azurewebsites.net/api/Login"
在标准 Chrome 中,这会返回一个405
预检请求选项请求方法。
但这200
在禁用的安全 Chrome 中有效并返回,请求 URL 为https://API.azurewebsites.net/api/Login
axios .post( "https://cors-anywhere.herokuapp.com/https://API.azurewebsites.net/api/Login"
这个添加https://cors-anywhere.herokuapp.com
前缀并200
以标准浏览模式返回。请求网址为 https://cors-anywhere.herokuapp.com/https://API.azurewebsites.net/api/Login
部署到 Azure 应用服务后发生了什么
- 运行
npm run build
生成dist
文件夹。 Azure App Service
使用Windows
和配置新的node runtime stack
- 使用
dist
_Kudu Console
- 该应用程序已在https://vue.azurewebsites.net启动并运行
- 无论方法2调用API的方法1,在生产站点上,它显示请求URL是,它显示请求URL是https://vue.azurewebsites.net/%22https://API.azurewebsites.net/api/登录