{"id":107,"date":"2022-04-28T14:47:11","date_gmt":"2022-04-28T06:47:11","guid":{"rendered":"http:\/\/usei.cn\/?p=107"},"modified":"2022-05-25T16:07:28","modified_gmt":"2022-05-25T08:07:28","slug":"thinkphp5-1-%e8%b7%a8%e5%9f%9f%e9%97%ae%e9%a2%98%e6%9c%80%e4%bd%b3%e5%ae%9e%e8%b7%b5","status":"publish","type":"post","link":"https:\/\/usei.cn\/index.php\/2022\/04\/28\/thinkphp5-1-%e8%b7%a8%e5%9f%9f%e9%97%ae%e9%a2%98%e6%9c%80%e4%bd%b3%e5%ae%9e%e8%b7%b5\/","title":{"rendered":"thinkphp5.1 \u8de8\u57df\u95ee\u9898\u6700\u4f73\u5b9e\u8df5"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">1.CORS.PHP<\/h1>\n\n\n\n<p id=\"u8dcd1941\">Access-Control-Allow-Origin \u7684\u503c\u4e3a*\u65f6 \u524d\u7aef\u65e0\u6cd5\u4f20\u5165cookie,\u6240\u4ee5\u8fd9\u91cc\u7528\u914d\u7f6e\u6587\u4ef6\u505a\u5177\u4f53\u57df\u540d<\/p>\n\n\n\n<p>1.\u5728config\/app.php \u4e2d\u914d\u7f6e\u5bb9\u8bb8\u8de8\u57df\u7684\u57df\u540d<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\r\nreturn &#91;\r\n    \/\/ +----------------------------------------------------------------------\r\n    \/\/ | \u8de8\u57df\u62e6\u622a\u5668\u652f\u6301\u7684\u57df\u540d\r\n    \/\/ +----------------------------------------------------------------------\r\n    'cors_host'=>&#91;\r\n        'zhuke.card.nmgjoin.com',\r\n        'zhuke-wap.card.nmgjoin.com'\r\n    ]\r\n];<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"XSHYz\">2.\u5728 application\/tags.php \u6587\u4ef6\u4e2d\u6307\u5b9a\u884c\u4e3a\u5904\u7406<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\r\n\/\/ \u5e94\u7528\u884c\u4e3a\u6269\u5c55\u5b9a\u4e49\u6587\u4ef6\r\nreturn &#91;\r\n    \/\/ \u5e94\u7528\u521d\u59cb\u5316\r\n    'app_init'     => &#91;\r\n        'app\\\\common\\\\behavior\\\\CORS'\r\n    ]\r\n];<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bWNzn\">3.\u5728application\/common\/behavior\/CORS.php \u5b9e\u73b0\u8de8\u57df\u903b\u8f91<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\nnamespace app\\common\\behavior;\nuse think\\facade\\Config;\nuse think\\Request;\nuse think\\Response;\nclass CORS\n{\n    \/**\n     * \u52a8\u6001\u5904\u7406\u8de8\u57df\u95ee\u9898\n     * @param Request $request\n     * @param $params\n     *\/\n    public function run(Request $request, $params){\n        \/\/ \u5bb9\u8bb8\u8de8\u57df\u95ee\u9898\u7684\u57df\u540d\u5217\u8868\n        $cors_host =Config::get('cors_host');\n        \/\/ $refer = $_SERVER&#91;'HTTP_REFERER'] ??'';\n      \t$refer=\"\";\n        if (array_key_exists('HTTP_REFERER', $_SERVER)){\/\/qq\u6d4f\u89c8\u5668\u6ca1\u6709HTTP_REFERER\u5c5e\u6027\n            $refer=$_SERVER&#91;'HTTP_REFERER'];\n        }else if(array_key_exists('HTTP_ORIGIN', $_SERVER))\n        {\n            $refer=$_SERVER&#91;'HTTP_ORIGIN'];\n        }\n      \t$refer_array = parse_url($refer);\n        $refer_host = $refer_array&#91;\"host\"]??\"\";\n        $refer_scheme= $refer_array&#91;\"scheme\"]??\"\";\n        if(! empty($refer) &amp;&amp; in_array($refer_host,$cors_host)) {\n            header('Access-Control-Allow-Origin: '.$refer_scheme.\":\/\/\".$refer_host);\n            header('Access-Control-Allow-Methods: POST, GET, PUT, OPTIONS, DELETE'); \/\/\u652f\u6301\u7684http \u52a8\u4f5c\n            header(\"Access-Control-Allow-Credentials:true\");\n            header(\"Access-Control-Allow-Headers:DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type, Accept-Language, Origin, Accept-Encoding, x-token\");\n\n            if ($_SERVER&#91;'REQUEST_METHOD'] == 'OPTIONS'){\n                Response::create()\n                    ->contentType(\"application\/json\")\n                    ->code(200)\n                    ->send();\n            }\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<p id=\"69e8f4154651e8c8d71467f0f1a6d830\">5.0 \u8001\u7248\u672c\u5199\u6cd5<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$cors_host =config('cors_host');\n        $refer = $_SERVER&#91;'HTTP_REFERER'] ??'';\n        $refer_host = parse_url($refer, PHP_URL_HOST);\n        if(!empty($refer) &amp;&amp; in_array($refer_host,$cors_host)) {\n            header('Access-Control-Allow-Origin: '.rtrim($refer,'\/'));\n            header(\"Access-Control-Allow-Headers: DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type, Accept-Language, Origin, Accept-Encoding, x-token\");\n            header(\"Access-Control-Allow-Credentials: true\");\n            header('Access-Control-Allow-Methods: *');\n            if (request()->isOptions()) {\n                exit();\n            }\n        }<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">2.CORSALL.PHP<\/h1>\n\n\n\n<p>\u5982\u679c\u4f60\u7684\u4e1a\u52a1\u4e0d\u5b58\u5728Cookie\u4e14\u9700\u8981\u5168\u90e8\u8de8\u57df \u8bf7\u53c2\u8003<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\nspace app\\common\\behavior;\nuse think\\Request;\n\nclass CORSALL\n{\n    \/**\n     * \u52a8\u6001\u5904\u7406\u8de8\u57df\u95ee\u9898(\u5168\u90e8\u653e\u884c)\n     * @param Request $request\n     * @param $params\n     *\/\n    public function run(Request $request, $params){\n        header('Access-Control-Allow-Origin: *');\n        header(\"Access-Control-Allow-Headers: DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type, Accept-Language, Origin, Accept-Encoding, x-token\");\n        header(\"Access-Control-Allow-Credentials: true\");\n        header('Access-Control-Allow-Methods: *');\n        if (request()-&gt;isOptions()) {\n            exit();\n        }\n    }\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>1.CORS.PHP Access-Control-Allow-Origin \u7684\u503c\u4e3a*\u65f6 \u524d\u7aef\u65e0\u6cd5\u4f20\u5165cook [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":["post-107","post","type-post","status-publish","format-standard","hentry","category-php"],"_links":{"self":[{"href":"https:\/\/usei.cn\/index.php\/wp-json\/wp\/v2\/posts\/107","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/usei.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/usei.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/usei.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/usei.cn\/index.php\/wp-json\/wp\/v2\/comments?post=107"}],"version-history":[{"count":5,"href":"https:\/\/usei.cn\/index.php\/wp-json\/wp\/v2\/posts\/107\/revisions"}],"predecessor-version":[{"id":544,"href":"https:\/\/usei.cn\/index.php\/wp-json\/wp\/v2\/posts\/107\/revisions\/544"}],"wp:attachment":[{"href":"https:\/\/usei.cn\/index.php\/wp-json\/wp\/v2\/media?parent=107"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/usei.cn\/index.php\/wp-json\/wp\/v2\/categories?post=107"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/usei.cn\/index.php\/wp-json\/wp\/v2\/tags?post=107"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}