解决CRMEB跨域问题

修改.env

注意:IP与端口是后端服务器的地址

VUE_APP_API_URL='http://IP:端口/api'
VUE_APP_WS_URL='ws://IP:端口/wechat'
VUE_APP_NAME='公园商城'

修改vue.config.js

使前端可以代理

module.exports = {
  assetsDir: "h5",
  devServer:{
	  proxy:{
		  "/" : {
			  ws: true,
			  target: process.env.VUE_APP_API_URL,
			  changeOrigin: true
		  }
	  }
  }
}

修改PHP代码

app/middleware.php,重点是添加跨域支持的配置,原理是用全局中间件对回复头进行处理

<?php
return [
    // 全局请求缓存
    // \think\middleware\CheckRequestCache::class,
    // 多语言加载
    // \think\middleware\LoadLangPack::class,
    // Session初始化
    \think\middleware\SessionInit::class,
    // 页面Trace调试
    // \think\middleware\TraceDebug::class,
    // 跨域支持
    \think\middleware\AllowCrossDomain::class
];

另外要修改一下\think\middleware\AllowCrossDomain::class,在Access-Control-Allow-Headers后面加上Authori-zation

class AllowOriginMiddleware implements MiddlewareInterface
{
    /**
     * header头
     * @var array
     */
    protected $header = [
        'Access-Control-Allow-Origin' => '*',
        'Access-Control-Allow-Headers' => 'Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-Requested-With, Authori-zation',
        'Access-Control-Allow-Methods' => 'GET,POST,PATCH,PUT,DELETE,OPTIONS,DELETE',
        'Access-Control-Max-Age' => '1728000'
    ];
    // .....省略一段代码
}

经过测试,有些步骤不需要了,步骤正确的话,还是挺容易的,忘掉划横线的部分吧!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值