ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

uni-app h5对接 thinkphp5接口跨域

uni-app h5对接 thinkphp5接口跨域

uni-app h5对接 thinkphp5接口跨域

问题描述

  • 请求接口 提示
Access to XMLHttpRequest at 'http://*******' from origin 'http://localhost:8091' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.

解决方案

  • application/tags.php
<?php
return [// 应用初始化'app_init'     => ['app\\common\\behavior\\CORS'],];
  • application/common/behavior/CORS.php
<?php
namespace app\common\behavior;use think\Response;
class CORS
{public function appInit(){// Allow from any originif (isset($_SERVER['HTTP_ORIGIN'])) {// Decide if the origin in $_SERVER['HTTP_ORIGIN'] is one// you want to allow, and if so:header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");header('Access-Control-Allow-Credentials: true');header('Access-Control-Max-Age: 86400');    // cache for 1 day}// Access-Control headers are received during OPTIONS requestsif ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))// may also be using PUT, PATCH, HEAD etcheader("Access-Control-Allow-Methods: GET, POST, OPTIONS");if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");exit(0);}}
}
返回列表