Ich möchte die gleiche Ursprungsrichtlinie für XMLHttpRequests in meinen eigenen eingebetteten WebViews deaktivieren. Ich habe die Kontrolle über die geladenen Seiten / den Code, der in der WebView ausgeführt wird, daher ist es mir egal, ob ich dieselbe Herkunftsrichtlinie durchsetzen möchte. Ich möchte domänenübergreifende Anfragen stellen.
Ich habe versucht, WebPolicyDelegate und WebResourceLoadDelegate zu implementieren, aber sie scheinen nicht für XMLHttpRequests aufgerufen zu werden.
Ich denke, es wird Ihnen schwer fallen, dies auf eine für Sie nützliche Weise zu tun. Haben Sie JSONP anstelle von XHRs in Betracht gezogen? Ссылка
Die allgemeine Übersicht besteht darin, dass JSONP den gleichen Mechanismus zum Anfordern externer Skripte verwendet, wie oben beschrieben. Der Unterschied besteht darin, dass Ihr Server dies erkennt und die JSON-Antwort als Argument für eine Callback-Methode zusammenfasst. Wenn Ihre Site dieses "Skript" empfängt, wird es ausgeführt und die Daten werden direkt in Ihre Callback-Methode zurückgegeben.
Wenn Sie ein Framework wie jQuery verwenden können, werden die meisten Client-Seiten transparent für Sie behandelt. In der Tat wird es praktisch die gleichen Methoden verwenden, die Sie für XHR (AJAX) -Anfragen verwenden. Schau es dir hier an: Ссылка
Sie könnten versuchen, den Header Access-Control-Allow-Origin: *
zur Serverantwort hinzuzufügen. Ich denke nicht, dass es von allen Browsern unterstützt wird.
Weitere Informationen: Ссылка
Ich habe gesucht, wie man das unter OSX macht. Es stellt sich heraus, WebPreferences hat eine private Methode: setWebSecurityEnabled
. Setzen Sie dies auf false und es sollte funktionieren.
Also zum Beispiel:
%Vor%Tags und Links javascript webview webkit xmlhttprequest same-origin-policy