Cross Domain Ajax with Cookies support using jQuery

Ajax requests are only possible when the protocol, domain and port number are the same. But sometimes you want to do Ajax calls to a different domain for example when you are creating a shared service that people should be able to call using Ajax or when you are developing locally and you are testing on a remote server. There are multiple ways to get around this restriction for example by using  CORS, an iFrame or JSONP. In my last project I got around the restriction using JSONP, so I will explain that here. See links for more information about solving it using CORS.

I am currently working on a mobile application with Phonegap that is running on my local machine. This application retrieves information from a remote server which is my own server but on a different location. I use jQuery to request this information:

The problem is that my remote machine has another domain name then my local. So making an Ajax request wont work. The solution is using dataType: ‘jsonp’¬†on your Ajax call. This will send an extra parameter called Callback to the server. On your server you need to respond properly:

Now both sessions and Ajax calls should work Cross Domain.

More information