Ich benutze Javascript XMLHttpRequest Objekt, um eine Anfrage an eine andere Seite (nicht auf dem gleichen Server oder Domainname) Ich bekomme einen Fehler ns_error_failure in Firefox, aber das Javascript funktioniert in Google Chrome, nach der Online-Suche Es scheint wegen der XSS-Richtlinie firefox zu sein. Domainübergreifende Anfragen sind nicht erlaubt.NS_ERROR_FAILURE: Fehler in Firefox
Gibt es sowieso um dies zu umgehen und die JS in Chrome und Firefox laufen zu lassen?
Bitte zögern Sie nicht nach zusätzlichen Details zu fragen, die Sie für notwendig erachten!
Hier ist der Code, den ich verwendet habe.
"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<json.bugs.length;i++)
{
var tempRow = document.createElement('tr');
var tempId = document.createElement('td');
tempId.innerHTML = '<a href=\'https://bugzilla.mozilla.org/show_bug.cgi?id=' + json.bugs[i].id + '\'>'+ json.bugs[i].id + '</a>';
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;
Wie können Sie eine XMLHttpRequest Cross-Domain ausführen? Niemals lädt für mich in Chrome ... –
Nun ... Ich weiß nicht, warum es funktioniert, aber es tut. Ich sende Anfragen an die Bugzilla-API. Sie können sich den Code ansehen, wenn Sie möchten. Ich habe es auf Chrome 26 getestet, habe auch an älteren Chromes und Chroms gearbeitet. – ffledgling
Das wäre interessant zu sehen, danke. –