php header("Access-Control-Allow-Origin: *") 无效

尝试在 vue里 用 WebUploader 上传图片, 遇到一个很奇怪的问题, 我后端php 使用了

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE");
header('Access-Control-Allow-Headers:x-requested-with,content-type');

来解决跨域请求问题,之前各种跨域一直都是好使的, 这次不好使,了,复制了WebUploader 官方的phpdemo,也提示跨域,
图片描述
查了好多资料无果,不知道大神们有没有看出来我哪里有问题!

header("Access-Control-Allow-Origin: *");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

这是 WebUploader 前端配置

uploadSend:function () {
let that = this;
let uploader = WebUploader.create({
    auto: false,
    swf: '../../static/upload/Uploader.swf',
    server: 'http://vr.he29.com/module/upload.php',
    pick: '#filePicker',
    compress:{
        width: 1600,
        height: 1600,
        quality: 90,
        allowMagnify: false,
        crop: false,
        preserveHeaders: true,
        noCompressIfLarger: true,
        compressSize: 0
    },
    threads:5,
    formData:{
        token:cookie.get('a_token')
    },
    fileVal:'thumb',
    chunked:true,
    chunkRetry:3,
    chunkSize:1024000,
    method:'POST',
    //sendAsBinary:true
});

请求
图片描述

目前接口处理跨域的php代码
图片描述

阅读 9.6k
3 个回答

把请求头 和 响应头 截图,看一下

你的代码中有设置header,但是响应头已经被ThinkPHP重写了。
楼主应该去看看ThinkPHP的跨域设置

新手上路,请多包涵

遇到过问题,不知道是不是同一个;之前我们也是后端设置了最大权限前端也加了跨域配置但是还是过不去。
跨域分2种 一种是普通请求跨域,一种是带cookie 跨域,通配符* 是不包括带cookie跨域的,如果你是第一种请求用vue,那么有个配置你要设置一下,自行百度吧 我忘记了。就是不带cookie 的跨域。这个是第一种解决办法。(这个应该就可以了)
第二种就是本地服务设置代理,代理到你请求的服务器端口 这样也可以但是这样以后如果区分端口的话会增加代理,建议第一种。不知道看么看明白。。。。。。大白话。。。祝无bug.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题