nginx环境下的服务器端调用第三方api如何跨域

1. 首先抛出问题

clipboard.png

在服务为端报错,并且请求的地址不正确

2. 在本地测试的情况

clipboard.png

本地成功获取正确的结果

2.1 在本地的请求代码

组件中axios的使用

clipboard.png

在config中proxyTable的配置

clipboard.png

3. 测试

3.1 使用nginx反向代理

clipboard.png

clipboard.png

正确的获取地址为http://api.jisuapi.com/news/get?channel=头条
中间的news被替换了为api
怎样能够正确的获得地址

阅读 4.3k
5 个回答

改一行就行

location /api {
    proxy_pass http://api.jisupai.com/;
}

最后面斜杠加上

nginx里面反向代理一下

解决第三方api(你没有控制权的api)在前端跨域访问有三种方法:

  1. 使用nginx在另一个域名下设置一个反向代理,并设置允许跨域的头部字段(Access-Control-Allow-Origin)。
  2. 使用nginx在与前端同一域名下的某个子路径设置一个反向代理,这样就不存在跨域的问题了。但由于要在同一域名下避免第三方api的url和你的url冲突,可能需要修改冲突的url,这样可能会造成奇怪的问题。
  3. 在后端调用api,再将结果通过后端送回给前端,这样也不存在跨域的问题。

一点点修改,最后不知道原因的成功了

clipboard.png

clipboard.png

clipboard.png

推荐问题
宣传栏