JavaScript AJAX – Make Cross-Domain Request for XML from Local File

ajaxjavascriptjsonpsame-origin-policyxml

I am not sure if this is even possible. Basically I want to load a local html file on a client PC and have it make a request to a remote server. The data served up by the server is XML.

When I say I am loading a file, I mean the URL in chrome appears as "file:///E:/…"

This is the closest I have gotten to being able to load the XML. I inspected the network tab on the client end and its successfully loading, I just cant seem to get the XML into an element I can inspect:

 var script = document.createElement('script');

 script.setAttribute('src', 'http://xxx.xx.xx.xxx:xxxx/myxmldata');

 script.setAttribute('type', 'text/xml');

 script.setAttribute('id', 'myxml');

 document.getElementsByTagName('head')[0].appendChild(script); 

 var content = document.getElementById("myxml").responseText;// anything I can do here?

 console.log(content);

An AJAX solution would work too. I didn't have any luck with JSONP (this isn't JSON, though).

Best Answer

Well, if you are having a problem with the cross domain policy, you might need to build some sort of proxy that will do the request for you. (Its pretty simple to make)

If you want to open a JavaScript file to make an Ajax request I'd use Dojo to parse the XML.

You have a nice example here: http://dojotoolkit.org/reference-guide/dojo/xhrGet.html

Hope it helps.

Related Question