Я хотел бы использовать GET с текстом сообщения с помощью AmplifyJS.Amplifyjs Запрос GET с телом
Мой вопрос конкретно в том, как достичь этого с помощью AmplifyJS.
Синтетические тесты работают нормально (Fiddler является моим тестовым клиентом). Но когда я делаю это через AmplifyJS, «тело» добавляется в строку запроса. (Edit: Является ли это ограничение базового «Аякса» JQuery или это выбор AmplifyJS в)
amplify.request.define('trickyGet', 'ajax', {
url: 'entity/{param}',
dataType: 'json',
type: 'GET',
contentType: '???'
});
затем
amplify.request({
resourceId: 'trickyGet',
data: { param: 'paramVal', data: JSON.stringify({'complex1': 'complex1Val'}) },
//data: { param: 'paramVal', data: {'complex1': 'complex1Val'}) },
success: callbacks.success,
error: callbacks.error
});
Я перепробовал все виды комбинаций с тем, как представляется мой комплекс данных и что content-type
к использовать.
Если я меняю type
на POST (и, конечно, измените точку доступа к API), все работает (data
находится в теле сообщения). Но с get, data
добавляется к строке запроса (по AplifyJS).
Боюсь, вы не совсем понимаете HTTP. Вы не создаете тело запроса для HTTP GET. Органы запроса предназначены только для таких методов, как POST, PUT и PATCH. Для таких методов, как GET или DELETE, вы можете использовать строку запроса. –
@CameronTinker, спасибо вам за помощь. На самом деле я сделал домашнюю работу, и на данный момент в спецификации HTTP, похоже, есть лазейка (возможно, намеренная), что на самом деле позволяет GET-запросам иметь тело. Очень легко google и найти на стеке - пожалуйста, проверьте. Тем не менее - это на самом деле не по теме. –