云迈博客

您现在的位置是:首页 > 灌水专栏 > 正文

灌水专栏

uniapp跨域问题解决

zero2020-12-22灌水专栏766
跨域uni.request(OBJECT)Tips请求的header中content-type默认为application/json。避免在header中使用中文,或者使用

跨域

uni.request(OBJECT)

Tips

 请求的 header 中 content-type 默认为 application/json。
 避免在 header 中使用中文,或者使用 encodeURIComponent 进行编码,否则在百度小程序报错

  1. 后端已设置跨域header头时如还出现跨域提示,uniapp 请求 header 中 content-type 默认为 application/json,需要改成 application/x-www-form-urlencoded

  2. 跨域请求中包含自定义header字段时,浏览器console报错。

    Request header field xfilesize is not allowed by Access-Control-Allow-Headers

  3. 包含自定义header字段的跨域请求,浏览器会先向服务器发送OPTIONS请求,探测该服务器是否允许自定义的跨域字段。

如果允许,则继续实际的POST/GET正常请求,否则,返回标题所示错误。

  1. 解决办法

    服务端需要对OPTIONS请求做出应答,应答header中包含 Access-Control-Allow-Headers,且值包含options请求中Access-Control-Request-Headers的值。

    header("Access-Control-Allow-Origin: *");
    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization");
    header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS,PATCH');
    if($_SERVER['REQUEST_METHOD'] == 'OPTIONS'){
        header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, CUSTOM-TOKEN");
        exit;
    }

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~