ANSWER: The problem is that I am trying to make a cross-domain call using Ext.Ajax.Request().
I’m designing an app that will be making http POST and GET requests to a RESTful service. The service is already in place and if I use a utility like soapUI or the Chrome Rest Client to make the calls they are successful. Someone might ask: “Is this a cross domain call?” My answer: I don’t know. I can tell you that the service is not hosted on my own computer but again, if I use soapUI or the Chrome Rest Client plugin for my Chrome browser I can successfully make the calls.
However, If I try to do them using Ext.Ajax.Request() they fail, almost immediately.
If I use Ext.util.JSONP.request() it won’t let me do a POST. What is the solution?
The answer is that it is impossible to use Ext.Ajax.Request() to make a call to a service not on the local machine/device. This is called cross-site/cross-domain scripting and is blocked by all browsers by default. It is possible to disable this security feature, but ONLY use that for development purposes.
If you are developing for a mobile device, I recommend developing with disabled browser security on your computer, and then using PhoneGap to package your app. PhoneGap allows cross-domain/cross-site scripting and so Ext.Ajax.Request() to an outside service will work using PhoneGap.