371 Stimmen

Ursprung ist nicht durch Access-Control-Allow-Origin erlaubt

Ich mache einen Ajax.request zu einem entfernten PHP-Server in einer Sencha Touch 2-Anwendung (verpackt in PhoneGap).

Die Antwort des Servers lautet wie folgt:

XMLHttpRequest kann nicht geladen werden http://nqatalog.negroesquisso.pt/login.php. Ursprung http://localhost:8888 wird von Access-Control-Allow-Origin nicht zugelassen.

Wie kann ich dieses Problem beheben?

20 Stimmen

Beim Verwenden von jQuery, sorgt dataType: 'jsonp', für den gewünschten Effekt

11 Stimmen

Übrigens ist das nicht die Antwort vom Server. Genauer gesagt wird dieser Fehler auf der Client-Seite angezeigt.

2 Stimmen

Der jsonp-Trick funktioniert wahrscheinlich nicht mehr, fyi: stackoverflow.com/questions/12216208/…

4voto

abksharma Punkte 556

Auch bei der PhoneGap-Anwendung haben wir das gleiche Problem, das im Chrome getestet wurde. Auf einem Windows-Rechner verwenden wir täglich die untenstehende Batch-Datei, bevor wir Chrome öffnen. Denken Sie daran, dass Sie vor dem Ausführen alle Chrome-Instanzen im Task-Manager bereinigen müssen oder Chrome so konfigurieren können, dass es nicht im Hintergrund läuft.

BATCH: (Verwenden Sie cmd)

cd D:\Program Files (x86)\Google\Chrome\Application\chrome.exe --disable-web-security

1voto

Mikhail Chuprynski Punkte 2234

In Ruby Sinatra

response['Access-Control-Allow-Origin'] = '*' 

für jeden oder

response['Access-Control-Allow-Origin'] = 'http://yourdomain.name'

0voto

Alessandro Annini Punkte 1491

Wenn du die Anfrage erhältst, kannst du

var origin = (req.headers.origin || "*");

dann wenn du antworten musst, gehe mit so etwas vor:

res.writeHead(
    206,
    {
        'Access-Control-Allow-Credentials': true,
        'Access-Control-Allow-Origin': origin,
    }
);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X