Das laden von cross-domain-Endpunkt mit jQuery, AJAX
Ich versuche, laden Sie eine cross-domain-HTML-Seite mit AJAX-aber es sei denn, der Datentyp ist "jsonp" ich kann nicht eine Antwort bekommen. Allerdings mit jsonp der browser rechnet mit einem Skript den mime-Typ aber ist empfangen "text/html".
Mein code für die Anforderung:
$.ajax({
type: "GET",
url: "http://saskatchewan.univ-ubs.fr:8080/SASStoredProcess/do?_username=DARTIES3-2012&_password=P@ssw0rd&_program=%2FUtilisateurs%2FDARTIES3-2012%2FMon+dossier%2Fanalyse_dc&annee=2012&ind=V&_action=execute",
dataType: "jsonp",
}).success( function( data ) {
$( 'div.ajax-field' ).html( data );
});
Gibt es eine Möglichkeit der Vermeidung der Verwendung von jsonp für die Anfrage? Ich habe bereits versucht mit der crossDomain-parameter, aber es hat nicht funktioniert.
Wenn nicht, gibt es irgendeine Möglichkeit, den Empfang der html-Inhalt in jsonp? Derzeit ist die Konsole nämlich "unerwartete" <" in die jsonp-Antwort.
InformationsquelleAutor xonorageous | 2013-02-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
jQuery, Ajax Hinweise
Gibt es einige Möglichkeiten, um zu überwinden, die cross-domain - Barriere:
Gibt es einige plugins, die helfen, mit cross-domain - Anforderungen:
Heads-up!
Der beste Weg, um dieses problem zu überwinden, ist, indem Sie Ihre eigenen proxy in der back-end, so dass Sie Ihre proxy-Punkt zu den Leistungen in anderen Domänen, denn im back-end nicht vorhanden ist, wird der same-origin-policy Einschränkung. Aber wenn Sie nicht tun können, die im back-end, dann achten Sie auf die folgenden Tipps.
Warnung!
Mithilfe von Drittanbieter-proxies ist kein Sicheres Verfahren, denn Sie können halten Sie den überblick über Ihre Daten, so kann es verwendet werden, mit öffentlichen Informationen, aber nie mit privaten Daten.
Die code-Beispiele gezeigt, unter Verwendung jQuery.get() und jQuery.getJSON(), beide sind Kürzel Methoden der jQuery.ajax()
CORS Überall
CORS Überall ist ein node.js proxy fügt CORS-Header auf die weitergeleitete Anfrage.
Die API zu verwenden, wird nur das Präfix der URL, mit der API-URL. (Unterstützt https: siehe github-repository)
Wenn Sie wollen, um automatisch zu aktivieren, cross-domain-Anfragen, wenn Sie benötigt werden, verwenden Sie den folgenden Codeausschnitt:
Unabhängig Von Ihrer Herkunft
Was Auch Immer Herkunft ist ein cross-domain jsonp Zugang. Dies ist ein open-source-alternative zu anyorigin.com.
Zum abrufen der Daten aus google.com, Sie können mit diesem snippet:
CORS Proxy
CORS-Proxy ist eine einfache node.js proxy zu aktivieren CORS Anfrage für eine website.
Es ermöglicht, javascript-code auf Ihre Website, um den Zugriff auf Ressourcen in anderen Domänen, die normalerweise blockiert würde, aufgrund der same-origin-policy.
Wie funktioniert es?
CORS Proxy nutzt die Vorteile von Cross-Origin Resource Sharing, das ist ein feature, das Hinzugefügt wurde, zusammen mit HTML-5. - Server können Sie angeben, dass Sie wollen Browser zulassen, dass andere websites, auf Ressourcen anfordern, die Sie hosten. CORS ist einfach Proxy ein HTTP-Proxy, fügt einen header hinzu, um zu Antworten zu sagen "das kann jeder anfordern".
Dies ist ein weiterer Weg, um das Ziel zu erreichen (siehe http://www.corsproxy.com). Alles, was Sie tun müssen, ist strip http:// und www. aus der URL wird umgeleitet, und Schreibe die URL mit
www.corsproxy.com/
CORS proxy-browser
Vor kurzem fand ich diese ein, geht es um die verschiedenen Sicherheits-orientierte Cross-Origin Remote Sharing Tools. Aber es ist eine black-box mit Flash als backend.
Sehen Sie es in Aktion hier: CORS proxy-browser
Holen Sie sich den source code auf GitHub: koto/cors-proxy-browser
Ich habe versucht diesen code ordnungsgemäß funktioniert, laden Sie den HTML-von Cross-Domain-aber die angeforderte HTML enthalten-image wird nicht geladen in Antwort. Bedeutet, dass die zurückgegebenen Cross Domain Angeforderten HTML-enthält kein Bild . Gibt es eine Möglichkeit, Bilder laden auch?????
Bilder, CSS und externen javascript verwiesen werden kann, von einem anderen Ursprung, so in der Antwort, die Sie gehen können, über die HTML-Zeichenfolge und ersetzen Sie die src von externen Ressourcen
hi jherax ich verwendet whateverorigin um eine html-Seite (einzige Möglichkeit für mich gearbeitet, verwendet, yql, google etc) aber nicht englische Zeichen sind seltsam. versucht, Daten zu verschlüsseln.Inhalt aber nicht geholfen
Hallo @Miru, wie der Titel sagt: "Laden von cross-domain-html-Seite mit jQuery-AJAX", antwortete ich auf die Titel, indem Sie einige Beispiele für die Verwendung eines proxy-durchführen von cross-domain-requests. Auch in der Antwort auf die Formulierung der Frage, die ich gestellt einige links zum cross-domain-requests mit JSONP mit YQL. Ich lade Sie ein, Lesen Sie die links, Sie sind sehr nützlich.
InformationsquelleAutor jherax
Können Sie Ajax-cross-origin-ein jQuery-plugin.
Mit diesem plugin können Sie verwenden
jQuery.ajax()
cross-domain. Es nutzt die Google-services, dies zu erreichen:Es ist sehr einfach zu bedienen:
Können Sie hier mehr Lesen:
http://www.ajax-cross-origin.com/
Wie kann ich die Authentifizierung gegenüber dem server?
Putting in
http://google.com
wird nicht funktionieren mit dieser Lösung.Dies ist die Bombe. funktioniert in chrome
funktioniert Super! Die API die ich verwende, unterstützt weder JSONP noch CORS, so ist dies das einzige, was funktionierte. Vielen Dank!
InformationsquelleAutor Ninioe
Wenn die externe Seite nicht unterstützt JSONP oder CORS, ist Ihre einzige option ist einen proxy zu benutzen.
Erstellen Sie ein Skript auf Ihrem server, Anforderungen, Inhalte, dann die jQuery-ajax-hit-Skript auf deinem server.
InformationsquelleAutor Kevin B
Legen Sie einfach das in den header deiner PHP-Seite, und es krank, Arbeit ohne API:
oder
oder
$_SERVER['HTTP_ORIGIN']
kommt. Ich konnte ihn nicht finden in der PHP-Dokumentation oder sonst irgendwo.Hmm, es scheint, dass es aufgefüllt wird nur mit AJAX-Anfragen. Jedenfalls, danke für die Antwort.
InformationsquelleAutor studio-klik
Ich bin dieses posting, falls jemand mit den selben problem ich bin jetzt gegenüber. Ich habe eine Zebra-Thermodrucker ausgestattet, mit der ZebraNet print server, bietet eine HTML-basierte Benutzeroberfläche für die Bearbeitung von mehreren Einstellungen zu sehen, der Drucker den aktuellen status, etc. Ich brauche, um den status des Druckers, angezeigt in einer dieser html-Seiten, angeboten durch die server und ZebraNet, beispielsweise alert() eine Meldung an den Benutzer in den browser. Dies bedeutet, dass ich auf dieser html-Seite in Javascript-ersten. Obwohl der Drucker in das LAN von dem PC des Benutzers, dass Same-Origin-Policy ist noch fest bleiben in meinem Weg. Ich habe versucht, JSONP, aber der server gibt html, und ich habe nicht gefunden, einen Weg, um Funktionalitäten zu ändern (wenn ich könnte, würde ich haben bereits den magic-header Access-control-allow-origin:*"). Also beschloss ich, schreiben Sie eine kleine Konsolenanwendung in C#. Es muss als Admin ausgeführt, um richtig zu arbeiten, sonst wird es Trolle 😀 eine Ausnahme. Hier einige code:
Alle der Benutzer tun muss, ist ausgeführt, dass die Konsole app als Admin. Ich weiß, es ist viel zu ... frustrierend und kompliziert, aber es ist eine Art workaround, um die Domänenrichtlinie problem, in Fall, dass Sie nicht ändern Sie den server in irgendeiner Weise.
edit: von js ich eine einfache ajax-Aufruf:
Den html-Code der angeforderten Seite wird zurückgegeben und gespeichert in der Daten variable.
InformationsquelleAutor user2177283
Daten abrufen, die form der externen Website durch die übergabe mit einem lokalen proxy wie vorgeschlagen von jherax erstellen Sie eine php-Seite auf, holt die Inhalte aus dem jeweiligen externen url und senden einen get-request an das php-Seite.
als php-proxy Sie verwenden können, https://github.com/cowboy/php-simple-proxy
InformationsquelleAutor Nitigya Sharma
Herausgefunden.
Verwendet dieser statt.
InformationsquelleAutor user3279865