选项 405(方法不允许)瘦身



我在共享主机上通过苗条的 php 制作 rest api,但前端使用角度,因此当我从本地主机发送数据时,我有错误选项 405(方法不允许(。 请帮助我解决这个问题。

请求方法选项

当您尝试从另一个域调用某些 API 时,会发生此问题。例如,要将请求从"url1.com"发送到"url2.com",您必须在托管"url2.com"的服务器上设置 CORS 策略。

因此,CORS 标头(如 Access-Control-Allow-Origin、Access-Control-Allow-Headers、Access-Control-Allow-Methods(应随每个请求一起从您的服务器发送。

您可以在此处阅读如何执行此操作

此外,您必须为您的请求启用 OPTIONS 请求(刚刚在每个 OPTION 请求上发送状态代码 200(。这称为预检请求。您需要为其创建中间件:

$app->add(function (Request $request, Response $response, $next) {
if ($request->getMethod() !== 'OPTIONS' || php_sapi_name() === 'cli') {
return $next($request, $response);
}
$response = $next($request, $response);
$response = $response->withHeader('Access-Control-Allow-Origin', '*');
$response = $response->withHeader('Access-Control-Allow-Methods', '*');
$response = $response->withHeader('Access-Control-Allow-Headers', '*');    
return $response;
});

我已经读过这个。 但我不明白配置。我将配置此代码。是吗?

<?php

使用 \Psr\Http\Message\ServerRequestInterface 作为请求; 使用 \Psr\Http\Message\ResponseInterface 作为响应;

$app = 新的 \苗条\应用程序;

$app->post('/login', function (Request $request, Response $response, array $args( {

$email = $request->getParam('email_login');
$response->getBody()->write("Hello, $email");
return $response;

}(;

最新更新