Heim > Web-Frontend > js-Tutorial > Hauptteil

JS implementiert domänenübergreifende Ajax-Request-Flask-Antwortinhalte

小云云
Freigeben: 2018-01-03 16:26:12
Original
1779 Leute haben es durchsucht

Die Ajax-Methode ist gut und die Website fühlt sich hochwertig an. Aufgrund der Einschränkungen von Js kann domänenübergreifendes Ajax jedoch nicht implementiert werden. Die Voraussetzung ist, dass Sie in der Lage sein müssen um die Reaktion auf der Kolbenseite zu steuern. In diesem Artikel wird hauptsächlich die JS-Implementierung des domänenübergreifenden Antwortinhalts von Ajax vorgestellt. Ich hoffe, dass er für alle hilfreich ist.

Haupttechnologie:

Ändern Sie den entsprechenden Header des Servers, sodass er jedem Domänennamen entsprechen kann. und legt den Antwortheader so fest, dass er der POST-Methode entsprechen kann.

Implementierungscode:

Hier ist der Flaschencode:


from flask import make_response
@app.route('/test',methods=['get','post'])
def Test():
 if request.method=='GET':
  rst = make_response('aaa')
  rst.headers['Access-Control-Allow-Origin'] = '*' #任意域名
  return rst
 else:
  rst = make_response('bbb')
  rst.headers['Access-Control-Allow-Origin'] = '*'
  rst.headers['Access-Control-Allow-Methods'] = 'POST' #响应POST
  return rst
Nach dem Login kopieren

HTML-Testcode:


<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
<span id="ss">test get</span>
<button onclick="getAjax()">click</button>

 <p id="time">test post</p>
 <input type="submit" value="click" onclick="getPostAjax()">


<script>
 function getPostAjax() {
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange=function () {
   if(xmlhttp.readyState=4 && xmlhttp.status ==200 ) {
    document.getElementById("time").innerText = xmlhttp.responseText;
   }
  }

  xmlhttp.open("POST","http://localhost:5000/test",true);
  xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  #这句话可以发送post数据,没有此句post的内容无法传递
  xmlhttp.send();


 }

 function getAjax() {
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange=function () {
   if(xmlhttp.readyState==4 && xmlhttp.status == 200){
    document.getElementById("ss").innerHTML=xmlhttp.responseText;
   }
  }
  xmlhttp.open("GET","http://localhost:5000/test",true);
  xmlhttp.send();
 }
</script>
</body>
</html>
Nach dem Login kopieren

Antwortheader kann nicht gesteuert werden

In dieser Situation kann die Get-Anfrage mit jquery und post abgeschlossen werden, es kann nichts unternommen werden.

Hast du es schon gelernt? Beeilen Sie sich und probieren Sie es aus.

Verwandte Empfehlungen:

Die perfekte Lösung für domänenübergreifende Ajax-Anfragen, die COOKIE nicht bereitstellen kann

Eine detaillierte Erklärung der Prinzipien von Ajax-Cross-Domain-Anfragen mit Beispielen

Erklären Sie vier Methoden für AJAX-Cross-Domain-Anfragedaten

Das obige ist der detaillierte Inhalt vonJS implementiert domänenübergreifende Ajax-Request-Flask-Antwortinhalte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage