企业买好域名后怎么做网站,中国建设工程质量协会网站,不懂代码可以做网站吗,创建平台2023年9月13日14:14:05
webman版本1.5 php版本8.0 运行环境windows
测试项目#xff1a;https://gitee.com/open-php/zx-webman-website
webman在跨域的时候#xff0c;会有点不同因为第一个区别就是是否关闭自动路由
//关闭自动路由
Route::disableDefaultRoute();如果不…2023年9月13日14:14:05
webman版本1.5 php版本8.0 运行环境windows
测试项目https://gitee.com/open-php/zx-webman-website
webman在跨域的时候会有点不同因为第一个区别就是是否关闭自动路由
//关闭自动路由
Route::disableDefaultRoute();如果不关闭路由只要简单的在路由上挂上跨域中间件,如果开启自动路由就在config/middleware.php添加就可以了
return [ [app\middleware\CrossDomain::class,//跨域请求]
];CrossDomain中间件的代码
?phpnamespace app\middleware;use Webman\MiddlewareInterface;
use Webman\Http\Response;
use Webman\Http\Request;//跨域
class CrossDomain implements MiddlewareInterface
{public function process(Request $request, callable $next): Response{
// p(getTime() . self::class);// 如果是options请求则返回一个空响应否则继续向洋葱芯穿越并得到一个响应$response strtoupper($request-method()) OPTIONS ? response(, 204) : $next($request);// 给响应添加跨域相关的http头$response-withHeaders([Access-Control-Allow-Credentials true,Access-Control-Allow-Origin $request-header(origin, *),Access-Control-Allow-Methods $request-header(access-control-request-method, *),Access-Control-Allow-Headers $request-header(access-control-request-headers, *),]);return $response;}
}如果关闭自动路由挂在中间件就如下
Route::group(/open, function () {Route::get(/test, [app\controller\Web\TestController::class, index])-name(测试);Route::post(/uploadPic, [app\controller\Web\IndexController::class, uploadPic]);//上传图片文件Route::post(/uploadFile, [app\controller\Web\IndexController::class, uploadFile]);//上传普通文件
})-middleware([app\middleware\CrossDomain::class,app\middleware\ApiLog::class
]);关闭自动路由的情况下需要额外配置一点东西
?php
/*** This file is part of webman.** Licensed under The MIT License* For full copyright and license information, please see the MIT-LICENSE.txt* Redistributions of files must retain the above copyright notice.** author walkorwalkorworkerman.net* copyright walkorwalkorworkerman.net* link http://www.workerman.net/* license http://www.opensource.org/licenses/mit-license.php MIT License*/use app\util\GlobalCode;
use Webman\Route;
use support\Request;//请求不存在的url返回信息
Route::fallback(function (Request $request) {$response strtoupper($request-method()) OPTIONS ? response(, 204) : returnJson([GlobalCode::CODE GlobalCode::NOT_FOUND, GlobalCode::MSG 404 not found, GlobalCode::DATA null]);$response-withHeaders([Access-Control-Allow-Credentials true,Access-Control-Allow-Origin *,Access-Control-Allow-Methods *,Access-Control-Allow-Headers *,]);return $response;
});
//关闭自动路由
Route::disableDefaultRoute();//首页
Route::get(/, function ($rquest) {return view(index/view);
});//前台api有权限
Route::group(/open, function () {Route::get(/test, [app\controller\Web\TestController::class, index])-name(测试);Route::post(/uploadPic, [app\controller\Web\IndexController::class, uploadPic]);//上传图片文件Route::post(/uploadFile, [app\controller\Web\IndexController::class, uploadFile]);//上传普通文件
})-middleware([app\middleware\CrossDomain::class,app\middleware\ApiLog::class
]);if (!function_exists(returnJson)) {function returnJson(mixed $data null, int $status 200, array $headers [Content-Type application/json], int $options JSON_UNESCAPED_UNICODE): Response{return new Response($status, $headers, json_encode($data, $options));}
}