title: NS_ERROR_FAILURE : Failure in Firefox
body: <p>I'm using javascript's XMLHttpRequest object to send a request to another page (not on the same server or domainname ) I get a ns_error_failure error in firefox, but the Javascript works in Google Chrome, after searching online it seems to be because of firefox's XSS policy. Cross-Domain requests are not allowed.</p>
  
  <p>Is there anyway to work around this and make the JS run in both chrome and Firefox?</p>
  
  <hr>
  
  <p>Please feel free to ask for additional details you feel are needed!</p>
  
  <hr>
  
  <p>Here's the code that I was using.</p>
  
  <pre><code>"use strict";
  
  function showFixed(username)
  {
      console.log("Entered script");
  
      var url = 'https://api-dev.bugzilla.mozilla.org/latest/bug'
          + '?quicksearch='
          + encodeURIComponent('FIXED @'+username);
      displayBug(url);
  }
  
  function showPending(username)
  {
      console.log("Entered script");
  
      var url = 'https://api-dev.bugzilla.mozilla.org/latest/bug'
          + '?quicksearch='
          + encodeURIComponent('@'+username);
      displayBug(url);
  }
  
  function showCC(username)
  {
      console.log("Entered script");
  
      var url = 'https://api-dev.bugzilla.mozilla.org/latest/bug'
          + '?quicksearch='
          + encodeURIComponent('cc:'+username);
      displayBug(url);
  }
  
  function displayBug(url)
  {
      var xmlhttp = new XMLHttpRequest();
      xmlhttp.open("GET",url,false);
      xmlhttp.send();
      var text = xmlhttp.responseText;
  
      var json = JSON.parse(text);
  
      for(var i=0;i&lt;json.bugs.length;i++)
      {
          var tempRow = document.createElement('tr');
  
          var tempId = document.createElement('td');
          tempId.innerHTML = '&lt;a href=\'https://bugzilla.mozilla.org/show_bug.cgi?id=' + json.bugs[i].id + '\'&gt;'+ json.bugs[i].id + '&lt;/a&gt;';
          var tempCreator = document.createElement('td');
          tempCreator.innerHTML = json.bugs[i].creator.real_name;
          var tempShortDesc = document.createElement('td');
          tempShortDesc.innerHTML = json.bugs[i].summary;
          var tempComponent = document.createElement('td');
          tempComponent.innerHTML = json.bugs[i].component;
          var tempAssignee = document.createElement('td');
          tempAssignee.innerHTML = json.bugs[i].assigned_to.real_name;
          var tempWhiteBoard = document.createElement('td');
          tempWhiteBoard.innerHTML = json.bugs[i].whiteboard;
          var tempBugStatus = document.createElement('td');
          tempBugStatus.innerHTML = json.bugs[i].status;
          var tempResolution = document.createElement('td');
          tempResolution.innerHTML = json.bugs[i].resolution;
          var tempLastChange = document.createElement('td');
          tempLastChange.innerHTML = json.bugs[i].last_change_time;
  
          tempRow.appendChild(tempId);
          tempRow.appendChild(tempAssignee);
          tempRow.appendChild(tempCreator);
          tempRow.appendChild(tempBugStatus);
          tempRow.appendChild(tempShortDesc);
          tempRow.appendChild(tempLastChange);
          document.getElementById('bugs-table-tbody').appendChild(tempRow);
      }
  
      document.getElementById('main').innerHTML = '';
  }
  
  function wrapper()
  {
      var waitString = "Please wait while bug list is loaded..."
      document.getElementById('main').innerHTML = waitString;
  </code></pre>