I'm trying to access a REST web service using jQuery. The service has correctly got Access-Control-Allow-Origin set to * according to Firebug, and there are no problems accessing it with Chrome/Firefox. However, in IE it doesn't work.
I've looked through plenty of the variations of this question that have already been posted, but so far none of the solutions have worked for me.
Here is my code (simplified the success/failure function contents for ease of reading):
$.support.cors = true;
$.ajax({
url: 'https://api.guildwars2.com/v1/maps.json?callback=?',
cache: false,
type: 'POST',
dataType: "jsonp",
success: function() { alert("Success!"); },
error: function() { alert('Failed!'); }
});
It also doesn't work with GET
as the type, nor with or without the callback.
I have also tried making it work without jQuery and haven't been successful:
var xdr = new XDomainRequest();
var url = "https://api.guildwars2.com/v1/maps.json?callback=?";
if(window.XDomainRequest)
{
if(xdr)
{
xdr.onsuccess = function(){alert('Success!');};
xdr.open("get",url);
xdr.send();
}
else
{
alert('Failed!');
}
}
Any advice anybody could give me would be much appreciated, as I'm considering simply mirroring the web service using file_get_contents()
in PHP on my own server, although that would be a last resort as it would gobble up a lot more bandwidth.