ВАРИАНТЫ 405 (метод не допускается) slimphp - PullRequest
0 голосов
/ 20 октября 2018

Я делаю api rest по тонкому php на общем хостинге, но Front-end использует угловой, поэтому у меня ошибка ОПЦИИ 405 (Метод не разрешен) при отправке данных с локального хоста.Пожалуйста, помогите мне об этом.

Варианты метода запроса

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Я читал об этом.но я не понимаю, чтобы настроить.Я хотел бы настроить этот код.Это так?

<?php

используйте \ Psr \ Http \ Message \ ServerRequestInterface в качестве запроса;используйте \ Psr \ Http \ Message \ ResponseInterface в качестве ответа;

$ app = new \ Slim \ App;

$ app-> post ('/ login', функция (запрос $ запрос,Ответ $ response, массив $ args) {

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

return $response;

});

0 голосов
/ 20 октября 2018

Эта проблема возникает, когда вы пытаетесь вызвать какой-то API из другого домена.Например, чтобы отправить запрос с «url1.com» на «url2.com», необходимо настроить политику CORS на сервере, где размещен «url2.com».

В результате заголовки CORS, такие как Access-Control-Allow-Origin, Access-Control-Allow-Headers, Access-Control-Allow-Methods, должны отправляться с вашего сервера с каждым запросом.

Вы можете прочитать, как это сделать здесь

Кроме того, вы должны включить запрос OPTIONS для вашего запроса (только что отправленный код состояния 200 для каждого запроса OPTION).Эта вещь называется предполетным запросом.Для этого вам нужно создать промежуточное программное обеспечение:

$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;
});
...