Don P: Firefox 5???

Beitrag lesen

Hallo,

Welchen Header?

Den Request-Header, den der Client mitsendet.

Was ist der »Request-Header«? Meinst du den Referrer?

Anscheinend habe ich den Begriff »Header« nicht richtig verwendet. Ich meine eigentlich das ganze Header-Zeug, das der Client beim Request vor eventuell zu postenden Daten sendet. Der Referrer ist nur einer davon. Vor allem meine ich den »Origin-Header«

Ich zitiere mal von Mozilla:

For example, suppose web content on domain http://foo.example wishes to invoke content on domain http://bar.other.  Code of this sort might be used within JavaScript deployed on foo.example:

var invocation = new XMLHttpRequest();  
var url = 'http://bar.other/resources/public-data/';  
  
function callOtherDomain(){  
  if(invocation)  
  {  
    invocation.open('GET', url, true);  
    invocation.onreadystatechange = handler;  
    invocation.send();  
  }  
}  

  • Zitat Ende -

Das ist genau die Anleitung zu dem, was ich mache. Es wird dann weiter ausgeführt, Zitat:

Let us look at what the browser will send the server in this case, and let's see how the server responds:

[Firefox fragt an:]
GET /resources/public-data/ HTTP/1.1
Host: bar.other
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b3pre) Gecko/20081130 Minefield/3.1b3pre
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://foo.example/examples/access-control/simpleXSInvocation.html
Origin: http://foo.example

[Server antwortet:]
HTTP/1.1 200 OK
Date: Mon, 01 Dec 2008 00:23:53 GMT
Server: Apache/2.0.61
Access-Control-Allow-Origin: *
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: application/xml

Lines 1 - 11 are headers sent by Firefox 3.5.

  • Zitat Ende -

Und dann heißt es noch: "Note that the main HTTP request header of note here is the Origin: header"

Anhand von diesem "Origin-Header" kann doch der Server entscheiden, ob er den Request akzeptiert oder nicht. Es leuchtet mir nicht ein, warum der Browser nun partout verlangt, dass der Server vor den angeforderten Daten noch einen entsprechenden »Access-Control-Allow-Origin:« sendet.

Was soll das? Wenn es der Server nicht erlauben will, soll er halt gar keine Daten senden und dem Browser das mitteilen mit "503 - Ätsch!". Die trotzdem gesendeten Daten brauchen doch nur unnötig Bandbreite und Energie während sie um den Planeten reisen, um schließlich vom Browser verworfen zu werden, weil der keinen passenden »Access-Control-Allow-Origin:« findet, *kopfpatsch*.

Offenbar bist du über die Sachlage nicht informiert. [...] Was du da machst, ist ein Ausnahmefall, der im normalen Webkontext keine Verwendung findet.

Wenn du es sagst, ok dann halt. Der normale Webkontext kann mir hier aber gestohlen bleiben ;)

Es hat sich nichts groß geändert, außer dass Firefox meiner Vermutung nach einen Regression-Bug eingebaut hat.

Das ist schlimm genug, wenn man direkt davon betroffen ist.

Wenn du an einer Klärung interessiert bist, so frage wie gesagt die Firefox-Entwickler.

Das werde ich wohl machen... und wahrscheinlich erzählen sie mir was Ähnliches wie du ;)

Gruß, Don P