json et jsonp sont faciles à confondre lorsque vous apprenez pour la première fois, cet article présentera donc la différence entre json et jsonp Les amis dans le besoin peuvent s'y référer.
Sans plus attendre, allons droit au but~
La différence entre json et jsonp :
Tout d'abord, il faut savoir que JSON est une sorte de format d'échange de données et JSONP est un protocole d'échange de données inter-domaines non officiel créé par les développeurs. (Les étudiants qui ne comprennent pas peuvent lire ces deux articles : Qu'est-ce que jsonp ? Explication détaillée du principe de jsonp et Que signifie json ? A quoi sert-il ? )
Jetons un coup d'œil à la comparaison entre json et jsonp
json est un format d'échange de données basé sur du texte utilisé pour décrire des données complexes. Par exemple, décrire les informations d'un élève peut écrire. comme ceci :
var student = { "id":"001", "name":"张三", "sex":"男", "age":20 } console.log(student.id); //001 console.log(student.name); //张三
Ensuite, vous pouvez obtenir la carte d'étudiant et le nom de l'étudiant via student.id et student.name.
Le format de données json est couramment utilisé dans le domaine du développement front-end. Ses avantages sont :
(1) Basé sur du texte brut, la transmission multiplateforme est simple ; 🎜> (2) JavaScript est pris en charge nativement et presque tous les langages backend sont pris en charge
(3) Format de données léger, occupant très peu de caractères, particulièrement adapté à la transmission sur Internet ; (4) Très lisible ;
(5) Facile à écrire et à analyser
jsonpest un protocole d'interaction inter-domaines, qui peut être compris comme jsonp stipule comment pour transmettre des données json. Pour faire simple, json ne prend pas en charge le cross-domain, mais js peut inter-domaine. Par conséquent, les données json sont encapsulées côté serveur avec le nom de fonction js fourni par le client, puis la fonction est fournie au client. appeler, obtenant ainsi les données json. Par exemple :
Le code client est le suivant :
Le code serveur est le suivant :$(function () { var user = { "username": "HelloWorld" }; $.ajax({ url: "http://localhost:8080/Changyou/UserInfo", type: "POST", contentType: "application/json; charset=utf-8", dataType: "jsonp", //json不支持跨域请求,只能使用jsonp data: { user: JSON.stringify(user) }, jsonp: "callback", //传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名,默认为callback jsonpCallback: "userHandler", //自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据 success: function (data) { $("#user_name")[0].innerHTML = data.user_name; $("#user_teleNum")[0].innerHTML = data.user_teleNum; $("#user_ID")[0].innerHTML = data.user_ID; }, error: function () { alert("请求超时错误!"); } }) });
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("application/json; charset=utf-8"); String username = new String(request.getParameter("user").getBytes("ISO-8859-1"),"utf-8"); String callback = new String(request.getParameter("callback").getBytes("ISO-8859-1"),"utf-8"); System.out.println("接收到的数据:" + username); System.out.println("callback的值:" + callback); JSONObject user = JSONObject.fromObject(username); System.out.println("接收到的用户名:" + user.get("username")); JSONObject userinfo = new JSONObject(); userinfo.put("user_name", "张鸣晓"); userinfo.put("user_teleNum", "18810011111"); userinfo.put("user_ID", "123456789098765432"); PrintWriter out = response.getWriter(); String backInfo = callback + "(" + userinfo.toString() + ")"; //将json数据封装在callback函数中提供给客户端 out.print(backInfo); out.close(); }
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!