2012-03-26 4 views
0

Etwas ziemlich merkwürdiges geschieht mit einem einfachen JS GET-Client. Hier ist der Code mit JQuery:JQuery-Client fehlgeschlagen außerhalb von localhost

<h3 onclick="$.ajax({ 
url: 'http://147.102.82.124/', 
type: 'GET',        
error: function() { alert('FAILURE'); }, 
success: function() {alert('SUCCESS')} 
});">Click me</h3> 

Verfahren Brände ein ‚Versagen‘ Nachricht, wenn die URL festgelegt ist auf localhost. Zur gleichen Zeit antwortet der Remote-Server mit einem 200-Status-Code (ich habe das über die Web-Konsole von Firefox überprüft).

[15:06:59.135] GET http://147.102.82.124/ [HTTP/1.1 200 OK 9ms] 

Und Ideen?

+0

Jeder Grund, warum das Skript inline ist? Sie erhalten denselben Fehler, wenn Sie den Handler an ein externes (oder sogar In-Page-aber nicht-Inline-) Skript anhängen? – danwellman

+0

@danwellman: das war nur zum testen ... Ich denke 3nigma gab die Antwort. –

+0

Was Sie brauchen, ist ein serverseitiges Proxy-Skript. Ihre Seite -> Ihr Server -> der andere Server. Sie können dies sehr einfach mit PHP + cURL tun – danwellman

Antwort

2

als Sicherheitsmaßnahme Quer Herkunft Anfragen sind nicht erlaubt, CORS

+0

Oh, OK! Wenn meine Webanwendung auf http://myserver.org bereitgestellt wird, werden alle Anfragen an myserver.org schließlich erfolgreich sein. Ist es nicht? –

+0

Alle Anfragen von den Seiten, die von 'myserver.org' bedient werden, werden erfolgreich sein. Ja – Rafay

+0

Eigentlich habe ich es erneut auf localhost versucht, aber mit einem anderen lokalen Domänennamen (definiert in/etc/hosts) und es schlägt fehl. Es erfordert tatsächlich, dass die Anforderung an denselben Server gesendet wird. Aber nur aus Neugier ... Wäre es möglich, meine Anfragen an einen anderen Server zu richten? –

1

sehen bekam ich das gleiche Problem, und ich löste einen Server-Skript, das den Inhalt einer anderen Domain bekommen immer in der Lage ist.

Ihre Ajax-Anfrage muss also auf Ihr lokales Skript verweisen (geschrieben mit Java, PHP, Python oder was auch immer, ...) und Ihr lokales Skript kann Ihnen den Inhalt einer anderen Domäne liefern.

+0

Ja, klingt gut, aber es ist zugegebenermaßen ein Workaround! –

+0

Ja, ich weiß, aber dies ist eine einfache Möglichkeit, es über verschiedene Domänen zu machen. Vielleicht kann auch node.js diese Aufgabe übernehmen. – antonjs

Verwandte Themen