Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

How to make synchronous ajax call in cross site domain

 
soni lal
Greenhorn
Posts: 29
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi All,

I have to make one synchronous ajax call which solves cross site domain issue.

The ajax call using window.XMLHttpRequest throws error while making call in cross domain.

The ajax call using JSONscriptRequest supports only asynchronous ajax call.

I tried in third way. But it is also not be bale to make synchronous ajax call. Please find the code below:

url = url + '&callback=' + "ACFeedStatistics.callbackSuccess";
var head = document.getElementsByTagName('head')[0];
script = document.createElement('script');
script.id = 'xdShortcutContainer';
script.type = 'text/javascript';
script.src = url;
head.appendChild(script);


I am totally stuck.

Please help me.

Thanks in advance!!

 
Eric Pascarello
author
Rancher
Posts: 15385
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The same origin policy prevents it. It is to keep sites from contacting your bank, email, etc.

If the external site is under your control and you only care about modern day browsers, you can look into CORS.

If the site is not, only way around it is a serverside proxy on your server to fetch the content.

In reality, synchronous calls are a bad idea since they lock up the browser.

Eric


 
Bear Bibeault
Author and ninkuma
Marshal
Pie
Posts: 64827
86
IntelliJ IDE Java jQuery Mac Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I agree with Eric. Unless you are able to write a 14-page justification for why the call should be synchronous, it should not be.

And as Eric suggested, you can use a server-side relay to perform the remote request. Or if the remote server supports JSONP, you can make the request directly.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic