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/;
          }
    

    就是这么简单的代码

    感悟

    • 在遇到一个问题方向很重要,对的方向可以加快解决问题的进度
    • 自己有个问题,不喜欢问别人或者说不喜欢讨论,别人知道的也是网上那些东西,还不如自己直接去网上搜,这种想法本身没有问题,如果遇到自己没有涉及过的领域可以先冷静分析适当的时间,如果在一定时间没有解决或者没有思路那就要问熟悉这个技术的人了,这样才能更快的学东西
    • 永远不要觉得自己什么事情都比别人厉害,要虚心
  • 相关阅读:
    删除Tomcat服务及其它注意
    下拉菜单被js图片挡住
    There are no resources that can be added or removed from the server
    Mysql存中文值乱码
    myeclipse的项目导入到eclipse下,com.sun.org.apache.commons.beanutils.BeanUtils不能导入
    No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing
    winServer2003除默认端口外的其他端口只能本地访问,关闭防火墙即可
    Oracle 11.2.0.3 on windows 2008 r2
    windows2008 r2 卸载GI
    初始化参数(Initialization Parameter)知识合集 based on 11g
  • 原文地址:https://www.cnblogs.com/lis2/p/13591527.html
Copyright © 2011-2022 走看看