jQuery und Cross-Domain-POST-Requests
Entwickle ich ein jQuery-plug-in, dass wird ein connector für einige REST-API.
Die Implementierung ist straight-forward, aber die same-origin-policy ist definitiv schmerzhaft.
Muss ich durchführen, meist POST-Anfragen.
Ich habe auch versucht umzusetzen-OPTIONEN-Methode und der Rückgabe (python, aber die Bedeutung sollte klar sein)
def options(self):
self.response.headers['Access-Control-Allow-Origin'] = self.request.host_url
self.response.headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
self.response.headers['Access-Control-Allow-Headers'] = 'x-requested-with'
self.response.headers['Access-Control-Max-Age'] = '1728000'
immer noch nicht funktioniert... keine Ahnung ?
PS: ich habe gesehen, dass es andere Frage mit ähnlichem Thema, aber ich brauche eine konkrete Lösung für die POST-Methode (GET könnte leicht implementiert durch die Verwendung von iframes)
Javascript-Beispiel:
$.ajax({
url: options.protocol+'://'+options.host+':'+options.port+'/'+method,
data: rawData,
async:false,
dataType: "json",
type:"POST",
success:function(data)
{
alert('asd');
result.data = data;
alert(data);
},
error:function(lol){
alert('omggg !!!!'+lol);
}
});
EDIT: Hinzugefügt javascript-code Beispiel
- Sind die cross-domain-Header unterstützt, die in den Browsern, die Sie unterstützen müssen?
- Haben Sie versuchen, nur mit
Access-Control-Allow-Origin
und Einstellung*
? Haben immer für mich gearbeitet. - nun, ich fand gerade einen Artikel, dass erklärt wurde, welche Rolle die Header. Für den test war ich mit firefox und eigentlich bekam ich die Rückkehr Körper (thx httpfox), aber ich kann nicht an den Erfolg der Methode genannt (jQuery.ajax)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ein bisschen wie ein Turnschuh manchmal einige Gedanken:
XDomainRequest
Objekt, nicht die standard -XMLHttpRequest
Objekt, aber jQuery nicht speziell eingehen, die (noch; ich muss zugeben, ich bin etwas überrascht, underwarten, es wird, bevor zu lange,), so müssen Sie Besondere Behandlung, die diese Arbeit machen im IE (und nur dann IE8 und höher). Bearbeiten: Erschreckend, anscheinend ist das jQuery-team gehabt haben, die Anfrage und verweigert es: ticket #8283 Das macht keine Sinn.Access-Control-Allow-Origin
Wert? Es sieht, wie es ist nur der Zugriff von dem server auf. Das header soll angeben, welche Anfänge die server es erlauben die Anfrage zu kommen aus. (Und*
erlaubt ist, im Sinne von "überall.")OPTIONS
Anfrage, es sei nicht gefragt.x-requested-with
), aber ich Wette, es wird noch andere in der eigentlichen Anfrage.FWIW (ich bin kein Python-guy), hier ist meine JSP-code, der arbeitet, vielleicht wird es nützlich sein — ich denke, die Objektnamen sind klar genug, um lesbar sein, selbst wenn Sie nicht tun, Java (und wer weiß, vielleicht tun Sie):
Hinweis, dass ich mit genau der gleichen Logik für
GET
,POST
, undOPTIONS
außer, dass im Fall von OPTIONEN, die ich nicht ausgeben eines response-body.