Maison >interface Web >js tutoriel >questions d'entretien courantes en ajax

questions d'entretien courantes en ajax

coldplay.xixi
coldplay.xixiavant
2020-07-31 11:37:282803parcourir

questions d'entretien courantes en ajax

1 : Qu'est-ce que l'ajax ? Quelle est la fonction d’ajax ?

异步的javascript和xml  AJAX 是一种用于创建快速动态网页的技术。  ajax用来与后台交互

[Recommandation de sujet] :Questions et réponses pour l'entretien ajax 2020 (dernières)

2 : Il existe plusieurs étapes pour les requêtes ajax js natives ? Que sont-ils ?

//创建 XMLHttpRequest 对象
var ajax = new XMLHttpRequest();
//规定请求的类型、URL 以及是否异步处理请求。
ajax.open('GET',url,true);
//发送信息至服务器时内容编码类型
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
//发送请求
ajax.send(null);  
//接受服务器响应数据
ajax.onreadystatechange = function () {    if (obj.readyState == 4 && (obj.status == 200 || obj.status == 304)) { 
    }
};

3 : ensemble de conversion de chaîne json objet json, chaîne json de conversion d'objet json

//字符串转对象
JSON.parse(json)eval('(' + jsonstr + ')')   
// 对象转字符串
JSON.stringify(json)

4 : combien de méthodes de requête ajax ? Leurs avantages et inconvénients ?

Publier, obtenir, supprimer couramment utilisés. La copie, l'en-tête, le lien, etc. ne sont pas couramment utilisés.

###代码上的区别
 1:get通过url传递参数
 2:post设置请求头  规定请求数据类型###使用上的区别
 1:post比get安全
 (因为post参数在请求体中。get参数在url上面)
 2:get传输速度比post快 根据传参决定的。
 (post通过请求体传参,后台通过数据流接收。速度稍微慢一些。而get通过url传参可以直接获取)
 3:post传输文件大理论没有限制  get传输文件小大概7-8k ie4k左右
 4:get获取数据	post上传数据
 (上传的数据比较多  而且上传数据都是重要数据。所以不论在安全性还是数据量级 post是最好的选择)

5 : Quelle situation provoque le cross-domain ?

Restrictions de la politique d'origine Différentes sources entraîneront des inter-domaines. Si l’une des situations suivantes est différente, elles proviennent toutes de sources différentes.

http://www.baidu.com/8080/index.html

http:// 协议不同
www 子域名不同
baidu.com 主域名不同
8080 端口号不同
www.baidu.com ip地址和网址不同

6 : Quelles sont les solutions cross-domaines ?

1 : jsonp ne peut résoudre que des requêtes multi-domaines (les plus demandées)

  • Principe : Créer une balise de script de manière dynamique. L'utilisation de l'attribut src de la balise script n'est pas limitée par la même politique d'origine. Parce que tous les attributs src et href ne sont pas limités par la même politique d'origine. Peut demander du contenu de données de serveur tiers.
  • Étapes :
  1. Créer une balise de script
  2. L'attribut src du script définit l'adresse de l'interface
  3. Les paramètres d'interface doivent apporter un nom de fonction personnalisé, sinon le backend ne peut pas renvoyer de données.
  4. Recevoir les données de retour en arrière-plan en définissant un nom de fonction
//去创建一个script标签
var  script = document.createElement("script");
//script的src属性设置接口地址 并带一个callback回调函数名称
script.src = "http://127.0.0.1:8888/index.php?callback=jsonpCallback";
//插入到页面
document.head.appendChild(script);
//通过定义函数名去接收后台返回数据function jsonpCallback(data){
    //注意  jsonp返回的数据是json对象可以直接使用
    //ajax  取得数据是json字符串需要转换成json对象才可以使用。
}

2 : CORS : partage de ressources entre domaines

  • Principe : paramètres du serveur Accès Après l'en-tête de réponse -Control-Allow-OriginHTTP, le navigateur autorisera les requêtes inter-domaines
  • Restrictions : le navigateur doit prendre en charge HTML5 et peut prendre en charge POST, PUT et d'autres méthodes. Il est compatible avec ie9 et supérieur
需要后台设置
Access-Control-Allow-Origin: *              //允许所有域名访问,或者
Access-Control-Allow-Origin: http://a.com   //只允许所有域名访问

3 : Définir document.domain

  • Principe : Pour les pages sous le même nom de domaine principal mais différent sous-domaines, vous pouvez définir document.domain pour en faire le même domaine
  • Restrictions : les documents du même domaine assurent l'interopérabilité entre les pages et la page iframe doit être chargée
// URL http://a.com/foo
var ifr = document.createElement('iframe');
ifr.src = 'http://b.a.com/bar'; 
ifr.onload = function(){
    var ifrdoc = ifr.contentDocument || ifr.contentWindow.document;
    ifrdoc.getElementsById("foo").innerHTML);
};

ifr.style.display = 'none';
document.body.appendChild(ifr);

4 : Utilisez Apache pour le transfert (proxy inverse), transformant plusieurs domaines en le même domaine

7 : Quels sont les codes d'état http courants ?

Un : code d'état commençant par 2

2xx (succès) indique un code d'état qui a traité avec succès la demande
200 (成功) 服务器已成功处理了请求。 通常。

Deux : code d'état commençant par avec 3

3xx (redirection) indique qu'une action supplémentaire est requise pour terminer la demande. Généralement, ces codes d'état sont utilisés pour les redirections.
304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。

Trois : Codes d'état commençant par 4

4xx (erreur de demande) Ces codes d'état indiquent que la demande peut être erronée, gênant le traitement du serveur
1:400 (错误请求) 服务器不理解请求的语法。
 
2:403 (禁止) 服务器拒绝请求。

3:404 (未找到) 服务器找不到请求的网页。

Quatre : Codes d'état commençant par 5

5xx (erreur du serveur) Ces codes d'état indiquent qu'une erreur interne s'est produite pendant que le serveur essayait de traiter la requête. Ces erreurs peuvent être des erreurs sur le serveur lui-même, plutôt que des erreurs de demande.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer