CORS Vue и OctoberCMS - PullRequest
       3

CORS Vue и OctoberCMS

0 голосов
/ 09 января 2020

Ответ на запрос предварительной проверки не проходит проверку контроля доступа: на запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

Я создаю приложение с Vue (VueX, vue -router, ...) и OctoberCMS. Я создаю виртуальный домен для API и APP локально через MAMP. Я настроил все CORS через плагин 'rluders-cors' в OctoberCMS.

Route::group(
    [
        'prefix' => 'api/v1',
        'middleware' => ['api','jwt.auth','\Barryvdh\Cors\HandleCors'],
    ],
    function () {
         // Routes here
    }
);

При развертывании в VPS (Centos 6) у меня был выше ответ от браузера. Я добавил заголовок в файл .htaccess API. И когда я открываю API непосредственно через браузер (поворот промежуточного программного обеспечения jwt.auth), я получаю весь заголовок, который установлен в файле .htaccess. Но в приложении не работают.

Я пытался использовать основной домен для приложения (ab c .example) для вызова API из моего виртуального домена в локальном (local.local), он все еще работал , Но я попробовал локальное приложение для вызова основного API в VPS, оно не сработало.

Пожалуйста, помогите мне! Спасибо.

Ответы [ 2 ]

0 голосов
/ 10 января 2020

Таким образом, мое решение для маршрутов состояло в том, чтобы искать предварительный ответ. Таким образом, в данных запроса, если он пуст, я отправляю предварительный ответ (думаю, что подойдет любая строка). Затем приходит запрос, который не является пустым. Это была самая легкая работа, которую я нашел. Вы все еще должны разрешить контроль доступа к домену. Обычно я устанавливаю его на все и всегда использую систему токенов для аутентификации методов, отличных от GET.

Route::match(['POST', 'OPTIONS'],'api/update-todo', function(Request $req) {
$data = $req->input();
if (!empty($data)) {
    Todo::where('id', $data['id'])
        ->update([
        'name' => $data['name'],
        'description' => $data['description'],
        'status' => $data['status'] 
    ]);
    return response()->json([
        'Success' => $data,
    ]);
} else {
    return response()->json([
      'Success' => $req,
    ]);
}
});
0 голосов
/ 09 января 2020

Я получил ошибку с 405 Method Not Allowed. И в заголовках ответа запроса OPTIONS у меня было «Разрешить». У меня нет Allow-Access-Control - *

...