Как вызвать метод POST для службы RESTful в Сенче? - PullRequest
1 голос
/ 15 ноября 2011

ОТВЕТ: Проблема в том, что я пытаюсь сделать междоменный вызов с использованием Ext.Ajax.Request ().

Я разрабатываю приложение, которое будет отправлять запросы HTTP POST и GET в службу RESTful. Сервис уже работает, и если я использую такую ​​утилиту, как soapUI или Chrome Rest Client, чтобы звонки были успешными. Кто-то может спросить: «Это междоменный звонок?» Мой ответ: я не знаю. Я могу сказать вам, что служба размещена не на моем собственном компьютере, но, опять же, если я использую soapUI или плагин Chrome Rest Client для моего браузера Chrome, я могу успешно совершать звонки.

Однако, если я попытаюсь сделать это, используя Ext.Ajax.Request (), они потерпят неудачу, почти сразу.

Если я использую Ext.util.JSONP.request (), это не позволит мне сделать POST. Какое решение?

Ответы [ 2 ]

0 голосов
/ 04 февраля 2012

Ответ заключается в том, что невозможно использовать Ext.Ajax.Request () для вызова службы, находящейся не на локальном компьютере / устройстве.Это называется межсайтовым / междоменным сценарием и по умолчанию блокируется всеми браузерами.Можно отключить эту функцию безопасности, но использовать ее ТОЛЬКО в целях разработки.

Если вы разрабатываете для мобильного устройства, я рекомендую разрабатывать с отключенной безопасностью браузера на вашем компьютере, а затем использовать PhoneGap для упаковки вашего приложения.PhoneGap позволяет создавать междоменные / межсайтовые сценарии, поэтому Ext.Ajax.Request () для внешнего сервиса будет работать с использованием PhoneGap.

0 голосов
/ 15 ноября 2011

Вы можете указать метод запроса в вызове Ajax:

new Ext.Ajax.request({ url:'http://foo', method:'POST', ... });

Смотри также: http://docs.sencha.com/ext-js/4-0/#!/api/Ext.Ajax

Надеюсь, это поможет.

...