之前写的上传图片接口参数是图片base64,一直用的好好的,现在公司开始写后台开发了,用的layui框架,直接使用layui自带的上传,发现之前接口用不了了,因为这个上传直接传的是file文件流,所以就又正常写了个参数是文件流的接口。
然后前端开始对接,发现一直提示跨域的问题,直接请求不到接口了,经过查阅资料,发现是上传图片的时候,Access-Control-Allow-Origin必须和客户端的域名一致,之前图方便就直接弄成*号了,所以对服务端跨域进行了处理,代码如下:
$originList = [
'http://127.0.0.1',
'http://xtc.com',
'http://loalhost',
'http://layadmin.com'
];
if(in_array($_SERVER['HTTP_ORIGIN'], $originList)){
header('Content-Type: text/html;charset=utf-8');
header('Access-Control-Allow-Origin:'.$_SERVER['HTTP_ORIGIN']);
header('Access-Control-Allow-Methods:GET, POST, PATCH, PUT, DELETE'); // 允许请求的类型
header('Access-Control-Allow-Credentials: true'); // 设置是否允许发送 cookies
header('Access-Control-Allow-Headers: Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-Requested-With, token');
}
改过之后,发现跨域问题已解决。