Я установил API на AWS API Gateway, который использует согласование контента, чтобы обеспечить два способа, с помощью которых можно получить некоторые данные.AWS API Gateway body map wildcard
Моя проблема в том, что, поскольку default Content-Type
header appears to be application/json
, пример разметки ниже возвращается как application/json
и поэтому отображается просто, а не отображается.
Шаблон сопоставления тела text/html
пытается точно определить заголовок Accept
, отправленный браузером. Например, отправляет Chrome
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Который явно !== text/html
. При этом, когда я отправляю запрос, такой как выше, отображается правильный ответ, но отображается неправильный заголовок типа контента.
Мои варианты, казалось бы,
- найти способ настройки по умолчанию для
text/html
- Найти средства, с помощью которых можно сделать подстановочные или регулярное выражение работы. Например.
text/*
Я пробовал это безрезультатно, но я надеюсь, что у меня что-то не хватает.
примеры отклика
Один отвечает JSON (
Accept: application/json
){ "id": "d4ef7d3f-f2..." }
Другой разметки и некоторые JS, который посылает
postMessage
.Accept: text/html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Example</title> </head> <body> <script> parent.postMessage({"id": "d4ef7d3f-f2..."}, "...", window); </script> </body> </html>
Суть API шлюза Кураж
https://gist.github.com/benswinburne/3a212c936e1d97fe8e17352269d6edb6
Благодаря Райан - ваше последнее утверждение дало мне идею, над которой я добавил в свой ответ, чтобы полностью объяснить, как я получил его на работу для других. К сожалению, использование SPA в качестве прокси не соответствовало бы моим потребностям, так как есть 302 переадресации, а также фактический контент, который все должно быть в одном домене. Прокси-сервер означает, что мне придется перенаправить браузер после загрузки содержимого и проксирования запроса с помощью JS или мета-обновления, которое будет слишком медленным. Кроме того, удаление cookie становится проблематичным с этим подходом, если я не перенаправляю еще один URL-адрес. –