• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Wir haben den Frühjahrsputz beendet, Ihr auch? Welches Foto zu dem Thema hat Euch dann am Besten gefallen? Hier geht es lang zur Abstimmung --> Klick

[Javascript] XMLHttpRequest Server Origin Problem

Mini-Leopard

Rhode Island Greening
Registriert
20.03.08
Beiträge
476
Liebe Community!

Ich habe gerade ein Problem mit meinem Server und einem XMLHttpRequest.
An meinem Safari funktioniert alles bestens.
Bei meinem Bruder und einer weiteren Person eben nicht.

Die beiden Rechner, die das Problem haben, geben im Web-Inspector folgendes aus:
XMLHttpRequest cannot load http://www.domain.de/upload.php. Origin http://domain.de is not allowed by Access-Control-Allow-Origin.

Ich habe dann die URL des Requests angesehen und entsprechend um "www." erweitert.
Seitdem funktioniert es bei mir nicht mehr.
Der Fehler ist der Gleiche.

Auch, wenn in der JS Datei auf'm Server http://www.domain.de/upload.php steht.
Sprich mein Rechner interpretiert die ganze Sache also genau falsch herum…


Hat da jemand 'ne Idee zu?

Liebe Grüße
 

hillepille

Melrose
Registriert
19.07.09
Beiträge
2.508
hi, häng doch mal die dateien und/oder das script an bzw. poste mal den link zur seite. Ansonsten wird das mit Hilfe schwierig. :)
 

_linx_

Kleiner Weinapfel
Registriert
04.01.09
Beiträge
1.125
Kann es sein, dass der Request auf eine andere als die Domain zeigt, auf der das Script läuft?
 

hillepille

Melrose
Registriert
19.07.09
Beiträge
2.508
Vermute ich auch, aber ohne das genau zu wissen, macht ne Antwort keinen sinn!
 

Mini-Leopard

Rhode Island Greening
Registriert
20.03.08
Beiträge
476
Nein. Selbstverständlich liegen beide Scripte auf dem selben Server.

Das eigentliche Problem ist ja, dass das Script auf meinem Computer (wo ich es auch entwickelt habe) nicht läuft, wenn ich www dazu schreibe, allerdings auf anderen Rechnern.

Wenn www nicht davor steht, geht es bei mir, bei anderen aber nicht.

Firefox funktioniert allerdings…

Ich wundere mich einfach, dass Safari scheinbar das invertiert, was im Quelltext steht.
Wenn www davor steht, sagt mir der Safari Inspektor, es würde nicht davor stehen. Andersrum geht es aber.

Scheint also ein Safari Bug zu sein…
*GRRRRR*
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Sendet der Webserver auch einen
Code:
Access-Control-Allow-Origin: blafasel
Header?
 

Mini-Leopard

Rhode Island Greening
Registriert
20.03.08
Beiträge
476
Das weiß ich nicht genau.
Ist ein gewöhnlicher SnowLeo Server auf'm MacMini.
Wie macht man das denn da?

Wieso sollte es aber diese Fallunterscheidung zwischen meinem Safari und anderen Browsern geben?!
Ich verstehe das einfach nicht. Ist auch nur mein Safari. FireFox geht.
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Du kannst doch ganz normal mit Deinem Backend (PHP, Python, Perl...) einen HTTP-Header senden (genaues sagt die jeweilige Doku).

Jeder Browser ist ein wenig anders, was Web-Entwickler meistens in den Wahnsinn treibt.
 

Mini-Leopard

Rhode Island Greening
Registriert
20.03.08
Beiträge
476
Ist nur eigenartig, dass es mit zwei Safari mit identischem Build nicht geht :/

Gut, wie dem auch sei.
Scheinbar gibt es keine Lösung für mein Problem.
Aber solange es bei den Kunden geht, brauch ich mich ja nicht aufzuregen…

Noch mal zu Deinem Ansatz, Bananenbieger:
Von wo soll der denn gesendet werden? Vom Script, welches ich anspreche?


Grüße
 

Mini-Leopard

Rhode Island Greening
Registriert
20.03.08
Beiträge
476
Okay, schon klar.
Aber was für einen Header soll ich denn senden?

Es ging doch dabei schon um das Server-Origin-Problem, oder?
 

Mini-Leopard

Rhode Island Greening
Registriert
20.03.08
Beiträge
476
Habe jetzt was tolles im Mozilla Developer Network gefunden.
Ist übrigens richtig toll!

Da habe ich auch eine Möglichkeit gefunden, Bilder via XMLHttpRequest zu versenden — klasse Sache.

Leider kann ich das grad nicht testen, da mein FTP Zugriff auf den OSX Server noch nicht funktioniert.
Ich muss also warten, bis der Admin wieder aus'm Urlaub zurück ist :((
Dann werde ich das aber testen und noch mal berichten.

Jetzt habe ich überhaupt verstanden, worum es geht und wie es geht.
Vielen Dank für eure Hilfe schon mal!!!

Liebe Grüße & schön' Abend
 

knalli

Stechapfel
Registriert
19.01.10
Beiträge
159
Den HTTP-Header "
Access-Control-Allow-Origin"
zu senden, ist aus abwärtskompatiblen Gründen derzeit noch nicht zu empfehlen.

@Thread-Op: Wenn du die exakten zwei URLs (du kannst natürlich gerne den Domain-Namen in "example.org" ändern, um den Sachverhalt nicht zu konkretisieren) postest, kann man auch genau sagen, was das Problem ist.

SOP schlägt auch bei lokalen Zugriffen zu, sprich Ajax ist nur mit einem laufen Webserver und nicht über file:/// möglich.
 

Mini-Leopard

Rhode Island Greening
Registriert
20.03.08
Beiträge
476
Wenn es nicht empfehlenswert ist, den Access-Controll-Origin Header zu senden, ist meine Frage leider nicht geklärt.
Der Zugriff erfolgt wie zuvor gesagt immer über http://domain.de bzw. http://www.domain.de.

Mein Problem ist ja, dass es auf allen Rechnern (inkl. meinem via FireFox) mit www. geht, in meinem Safari allerdings muss ich www. weg lassen. Sonst geht es nicht :((

Keine Ahnung, was das Problem ist, Safari Cache hab' ich geleert, Cookies werden von meiner Seite nicht angelegt.
 

knalli

Stechapfel
Registriert
19.01.10
Beiträge
159
Darauf muss man bei HTTP nicht achten. Mitsenden schadet niemanden.
Wenn man sich darauf verlässt, weil ansonsten SOP anschlägt, ist das sehr wohl ein K.O.-Kriterium.

Das Protokoll geht bei älteren Browsern nicht "kaputt", das ist wohl richtig. Die Anwendung funktioniert dann ggf. aber dennoch nicht mehr.



@Mini-Leopard: Genauer, bitte. Ich habe keine Glaskugel :)