zoukankan      html  css  js  c++  java
  • axios跨域问题解决

    问题描述

    • 前后端分离项目,前端使用axios访问后端数据,前后端用的是两个域名,在本地测试接口数据正常,但是部署到服务器上就出现跨域问题,奇怪的是有的接口跨域有的接口不跨域

    分析过程

    • 插播一个小发现,自从部署到服务器代码后服务器总是不会及时生效,要过一分钟左右才会生效,以为是nginx服务器的缓存,更新代码后重启服务器都没有用,今天才发现原来是在部署的时候PHP打开了opcache,把这个关闭就行了
    • 后端PHP程序在处理请求的时候是把所有的请求源都为允许的,刚开始以为是在header中携带token的问题,只要不携带token就没事,后来经过调试发现是后端在处理token的时候抛出了异常,然后前端程序就出现了跨域问题,测试一段时间发现2**的开头的状态码都是正常的,其他的状态码都是报跨域,这个时候自己犯了一个错误,觉得既然200是能接受的,说明跨域问题是不存在,是不是前端程序有什么问题,然后就照着这个方向去了,但是找了很长时间都没有结果,最后有人说是异常处理也要设置跨域,tp框架在哪里设置异常跨域就不清楚了,这个时候到了解决问题的死胡同了,于此同时前端也在查找相关解决办法,他在群里问别人是不是可以通过nginx设置成同源,刚开始的时候我是觉得他没有接触过nginx服务器的东西肯定搞不出来的,服务器就由他胡乱配置吧,但是最后没有想到的是他居然成功的解决了这个跨域的问题,先说下他是怎么配置的吧,其实很简单
     location /api/ {
                  proxy_pass http://api.server.com/;
          }
    

    就是这么简单的代码

    感悟

    • 在遇到一个问题方向很重要,对的方向可以加快解决问题的进度
    • 自己有个问题,不喜欢问别人或者说不喜欢讨论,别人知道的也是网上那些东西,还不如自己直接去网上搜,这种想法本身没有问题,如果遇到自己没有涉及过的领域可以先冷静分析适当的时间,如果在一定时间没有解决或者没有思路那就要问熟悉这个技术的人了,这样才能更快的学东西
    • 永远不要觉得自己什么事情都比别人厉害,要虚心
  • 相关阅读:
    UVA 10617 Again Palindrome
    UVA 10154 Weights and Measures
    UVA 10201 Adventures in Moving Part IV
    UVA 10313 Pay the Price
    UVA 10271 Chopsticks
    Restore DB後設置指引 for maximo
    每行SQL語句加go換行
    种服务器角色所拥有的权限
    Framework X support IPV6?
    模擬DeadLock
  • 原文地址:https://www.cnblogs.com/lis2/p/13591527.html
Copyright © 2011-2022 走看看