Я использую Угловое Dart V1 для переднего конца рамки я использую Полк & & полки маршрутизатор для бэкэнда APIПочему метод Angular посылает метод запроса Http: опции перед POST?
Я пытаюсь перенести некоторые старые запросы GET принимать сообщения данных
Старый запрос:
Future fetchRoutes(FlightPostParamsVO params) async {
return _http.get(BASE + 'routes').then(handleRoutes);
}
Новый запрос
Future fetchRoutes(FlightPostParamsVO params) async {
Map post = params.toPostable();
return _http.post(BASE + 'routes', post).then(handleRoutes);
}
Я устанавливаю заголовки CORS в родовом ответ на все вызовы, как его строго в формате JSON API:
Future<Response> makeResponse(json) async {
var response = new Response.ok(json, headers: {'content-type': 'text/json',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers': "Origin, X-Requested-With, Content-Type, Accept",
'Access-Control-Allow-Methods': "POST, GET, OPTIONS"});
return response;
}
Я получаю 404 следующий вывод:
OPTIONS http://localhost:1234/tickets/routes 404 (Not Found)
(index):1 XMLHttpRequest cannot load http://localhost:1234/tickets/routes. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access. The response had HTTP status code 404.
Когда я проверяю сетевой трафик - весь мой запрос GET. УДАЛИТЬ правильные заголовки
Когда я проверяю сетевой трафик - мой запрос POST выполняется по запросу с помощью метода, установленного как ОПЦИИ - этот вызов не содержит заголовков.
Мой обработчик POST маршрут никогда не вызывается
маршрутизатор
Router airRouter = router();
Router tickets = airRouter.child('/tickets');
tickets.add('/cities', ['GET'], controller.handleCitites);
tickets.add('/times', ['GET'], controller.handleTimes);
tickets.add('/routes', ['POST'], controller.handleRoutes);
tickets.add('/{id}/tickets/', ['GET'], controller.handleTickets);
io.serve(airRouter.handler, 'localhost', 1234);
Fix Симптом:
tickets.add ('/ маршруты', [ 'OPTIONS'], контроллер .handleRoutes);
Вопрос: Почему HTTP запрос отправки Метод с Запрос: OPTIONS перед каждым POST, и Что такое правильный способ вызвать только POST?
Link сломана! знак равно –