Maison  >  Article  >  interface Web  >  JS implémente le contenu de réponse du flacon de requête inter-domaines Ajax

JS implémente le contenu de réponse du flacon de requête inter-domaines Ajax

小云云
小云云original
2018-01-03 16:26:121761parcourir

La méthode Ajax est bonne et le site Web semble haut de gamme. Cependant, en raison des limitations de Js, Ajax inter-domaines ne peut pas être implémenté Ici, parlons de la solution. pour contrôler la réponse du côté du flacon. Cet article présente principalement en détail l'implémentation JS du contenu de la réponse du flacon de requête inter-domaines Ajax. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer.

Technologie principale :

Modifier l'en-tête correspondant du serveur afin qu'il puisse correspondre à n'importe quel nom de domaine. et définit l'en-tête de réponse afin qu'il puisse correspondre à la méthode POST.

Code d'implémentation :

Voici le code du flacon :


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

code de test html :


<!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>

Impossible de contrôler l'en-tête de réponse

Pour cette situation, la demande d'obtention peut être complétée en utilisant jquery, post, rien ne peut être fait.

L'avez-vous déjà appris ? Dépêchez-vous et essayez-le.

Recommandations associées :

La solution parfaite pour les requêtes inter-domaines Ajax qui ne peuvent pas être apportées avec COOKIE

Un exemple détaillé du principe des requêtes inter-domaines Ajax

Expliquer quatre méthodes de données de requêtes inter-domaines AJAX

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn