Bit of a JavaScript newbie here –
I am firing this basic bit of JavaScript code from my website as a test:
var req = new XMLHttpRequest();
req.open('GET', 'http://www.google.co.uk/', false);
req.send();
if (req.status == 200) {
alert(req.responseText);
}
and I keep getting the following error:
[Exception… “Component returned
failure code: 0x80004005
(NS_ERROR_FAILURE)
[nsIXMLHttpRequest.send]” nsresult:
“0x80004005 (NS_ERROR_FAILURE)”
location: “JS frame ::
http://localhost/testEx3/Default.aspx
:: SendRequest :: line 402″ data: no]
Does anyone know what I’m doing wrong here?
UPDATE:
OK – so what I’m actaully trying to do is a POST request to a web service I published on my local dev machine – I was getting the same error as above – that’s why I put that example for simplicity. It now appears the “Same Origin Policy” has come into play – so now I have published the web service with the begining part of the URI as http://localhost/ instead of http://tempuri.org/.
Now I get a 500 error. Is there something I am missing in the headers?
var request = new XMLHttpRequest();
request.open("POST", "http://localhost/ApplicationServices.asmx?op=AddressSearch", false, "", "");
request.setRequestHeader("X-Requested-With", "XMLHttpRequest");
request.send(x, y, buffer);
if (request.status == 200) {
alert("Success");
}
else {
alert("Failure: " + request.status);
}
Unless you work for Google, that’s not going to work. You can’t pull information from another domain via XMLHttpRequest. It’s called the “same origin policy”.
edit — If you’re getting a 500 error from your local server, that means that your HTTP request is making it to the server, and the some code in the server is failing. Check your server logs.