For some reason the following code works in Internet Explorer but not in Chrome or Firefox.
in this browsers I receive the:
“Not able to retrieve sliders data.”
alert.
I would love for some help with this one.
Thanks.
Here is my JavaScript code:
<script>
if (navigator.appName == "Microsoft Internet Explorer")
{
request = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
request = new XMLHttpRequest();
}
if (request == null)
alert ("Your browser doesn't support XMLHttpRequest");
function getSelectedText(elementId)
{
var elt = document.getElementById(elementId);
if (elt.selectedIndex == -1)
return null;
return elt.options[elt.selectedIndex].value;
}
function sendRequest()
{
debugger;
var type = getSelectedText('dropdown');
//alert("The chosen type: "+type);
var url = 'https://tomcat-emildesign.rhcloud.com/coupons/Client/serveranswer.jsp?type=' + type;
request.open("GET", url, true);
request.onreadystatechange= processRequest;
request.send(null);
}
function processRequest()
{
if (request.readyState == 4)
{
if (request.status == 200)
{
parseMessage();
}
else
{
alert ( "Not able to retrieve sliders data." );
}
}
}
function parseMessage()
{
// Assign the XML file to a var variable.
var doc = request.responseXML;
var pending, hires, rejected;
if(navigator.appName == "Microsoft Internet Explorer")
{
pending = doc.documentElement.getElementsByTagName('pending').item(0).text;
hires = doc.documentElement.getElementsByTagName('hires').item(0).text;
rejected = doc.documentElement.getElementsByTagName('rejected').item(0).text;
}
else
{
pending = doc.documentElement.getElementsByTagName('pending')[0].textContent;
hires = doc.documentElement.getElementsByTagName('hires')[0].textContent;
rejected = doc.documentElement.getElementsByTagName('rejected')[0].textContent;
}
alert("values:" + pending + "," + hires + "," + rejected);
}
I don’t see anything wrong with your code. The issue might be that you are doing a cross-domain request that is trusted in Internet Explorer but fails in other browsers.
To confirm this, you can check if the returned request.status is equal to 0.
More info on the same origin policy on Wikipedia.