如何在Sencha中为RESTful服务调用POST方法?

时间:2011-11-15 19:51:51

标签: rest post sencha-touch extjs

答案:问题是我正在尝试使用Ext.Ajax.Request()进行跨域调用。

我正在设计一个应用程序,它将向REST服务发出http POST和GET请求。该服务已经到位,如果我使用soapUI或Chrome Rest Client这样的实用程序来拨打电话,他们就会成功。有人可能会问:“这是跨域调用吗?”我的回答:我不知道。我可以告诉您,该服务并非托管在我自己的计算机上,但如果我使用soapUI或Chrome浏览器的Chrome Rest客户端插件,我可以成功拨打电话。

但是,如果我尝试使用Ext.Ajax.Request()来完成它们,它们几乎立即失败。

如果我使用Ext.util.JSONP.request(),它将不允许我进行POST。解决方案是什么?

2 个答案:

答案 0 :(得分:0)

您可以在Ajax调用中指定请求方法:

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

另请参阅:http://docs.sencha.com/ext-js/4-0/#!/api/Ext.Ajax

希望这有帮助。

答案 1 :(得分:0)

答案是不可能使用Ext.Ajax.Request()来调用不在本地机器/设备上的服务。这称为跨站点/跨域脚本,默认情况下被所有浏览器阻止。可以禁用此安全功能,但仅用于开发目的。

如果您正在开发移动设备,我建议您在计算机上使用已禁用的浏览器安全性进行开发,然后使用PhoneGap打包您的应用。 PhoneGap允许跨域/跨站点脚本,因此外部服务的Ext.Ajax.Request()将使用PhoneGap。