thinkphp6 + nginx + antd Admin-Vue解決跨域

一、首先修改vue.config.vue

    devServer: {
        proxy: {
            '/': { //此處要與 /services/api.js 中的 API_PROXY_PREFIX 值保持一致
                target: process.env.VUE_APP_API_BASE_URL,
                changeOrigin: true,
                pathRewrite: {
                    '^/': ''
                }
            }
        }
    },
image.png

二、設(shè)置.env(正式)和.env.development(開發(fā))中VUE_APP_API_BASE_URL的地址

VUE_APP_API_BASE_URL=http://yourUrl.com
image.png

三、serve下面的api.js修改跨域相關(guān)

我服務(wù)端是PHP,請求地址為http://yourUrl.com/categoryList

image.png


四、nginx服務(wù)器設(shè)置偽靜態(tài)
Access-Control-Allow-Origin要設(shè)置具體的帶端口號

location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 last; break;
}
if ($request_method = 'OPTIONS') {
add_header Access-Control-Allow-Origin 'http://localhost:8080/';
add_header Access-Control-Allow-Credentials true;
add_header Access-Control-Allow-Headers 'token,Authorization';
add_header Content-Length 0;
return 204;
}
}

image.png

五、thinkphp6代碼

入口文件

if($_SERVER['REQUEST_METHOD'] == 'OPTIONS'){
    header("Access-Control-Allow-Credentials: true");
    header("Access-Control-Allow-Origin: http://localhost:8080");
    header("Access-Control-Allow-Headers: Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-CSRF-TOKEN, X-Requested-With, X-Token");
    header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS, PATCH');
    exit; // 直接退出,不走后序流程
}
image.png

路由

<?php
/**
 *
 * User: 小貝殼
 **/
use think\facade\Route;

Route::post("/login", "Login/login")->middleware('allowcross');

Route::group('/', function(){
    Route::post("/categoryList", "Category/index");
})->middleware('check')->allowCrossDomain();

完成
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容