Heim > Web-Frontend > js-Tutorial > Hauptteil

So lösen Sie das domänenübergreifende Ajax-Problem

coldplay.xixi
Freigeben: 2020-10-29 09:25:27
Original
2208 Leute haben es durchsucht

Lösung für das domänenübergreifende Ajax-Problem: 1. Fügen Sie einen Header zum Antwortheader hinzu, um den Zugriff zu ermöglichen. 2. JSONP unterstützt nur Get-Anfragen, aber keine Post-Anfragen. 4. Verwenden Sie Nginx, um eine Unternehmensebene zu erstellen Schnittstellen-Gateway.

So lösen Sie das domänenübergreifende Ajax-Problem

Verwandte kostenlose Lernempfehlungen: ajax (Video)

ajax-übergreifende Problemlösung:

Lösung 1: Hinzufügen Header zum Antwortheader Zugriff zulassen

Cross-Origin Resource Sharing (CORS) Cross-Origin Resource Sharing

Die Sicherheitsgrundlage dieser domänenübergreifenden Zugriffslösung basiert auf „JavaScript kann diesen HTTP-Header nicht steuern“

Es erfordert eine Autorisierung über den von zurückgegebenen HTTP-Header die Zieldomäne. Gibt an, ob domänenübergreifender Zugriff zugelassen werden soll.

response.addHeader(‘Access-Control-Allow-Origin:*’);//允许所有来源访问 
response.addHeader(‘Access-Control-Allow-Method:POST,GET’);//允许访问的方式
Nach dem Login kopieren

Lösung 2: JSONP unterstützt nur Get-Anfragen und keine Post-Anfragen

Verwendung: ①Datentyp in JSONP ändern ②JSONP: „jsonpCallback“————Der tatsächliche an das Backend gesendete Wert ist http:// a.a.com/ a/FromServlet?userName=644064&jsonpCallback=jQueryxxx ③Das Backend erhält den jsonpCallback in der Get-Anfrage ④Konstruieren Sie die Rückrufstruktur

$.ajax({
type : "GET",
async : false,
url : "http://a.a.com/a/FromServlet?userName=644064",
dataType : "jsonp",//数据类型为jsonp  
jsonp : "jsonpCallback",//服务端用于接收callback调用的function名的参数
success : function(data) {
alert(data["userName"]);
},
error : function() {
alert('fail');
}
});
 
//后端
        String jsonpCallback = request.getParameter("jsonpCallback");
//构造回调函数格式jsonpCallback(数据)
resp.getWriter().println(jsonpCallback+"("+jsonObject.toJSONString()+")");
Nach dem Login kopieren

JSONP-Implementierungsprinzip

Unter derselben Ursprungsrichtlinie kann die Seite unter einem bestimmten Server die nicht erhalten Daten außerhalb des Servers, das heißt, allgemeines Ajax kann keine domänenübergreifenden Anforderungen stellen. Ausnahmen sind jedoch Tags wie img, iframe und script, die über das src-Attribut Daten auf anderen Servern anfordern können. Mithilfe der offenen Richtlinie des

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!