jsonp 实现原理及代码解析
发布时间:2020-12-16 18:49:57 所属栏目:百科 来源:网络整理
导读:前端代码 !DOCTYPE htmlhtml lang="en"head meta charset="UTF-8" titlejsonp 的使用/title script src="//cdn.bootcss.com/jquery/3.1.1/jquery.min.js"/script/headbodydiv id="test"/divscript $.ajax({ url: "http://169.254.217.223:3000/",type: "post
前端代码<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jsonp 的使用</title> <script src="//cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script> </head> <body> <div id="test"></div> <script> $.ajax({ url: "http://169.254.217.223:3000/",type: "post",dataType : "jsonp",contentType: "application/json",jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback) jsonpCallback:"jsonpCallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据 success: function (data) { $("#test").text(JSON.stringify(data)); },error: function () { } }); </script> </body> </html> 后台代码需要本地有 nodejs 环境,以及安装 express 包 var express = require('express'); var app = express(); app.get('/',function (req,res) { var callback = req.query.callback; //这里的callback 就是上面 jsonp: "callback" 定义的名称 res.send(callback + '({"data": "test","test": "data"})'); }); app.listen(3000,function () { console.log('app is listening at port 3000'); }); 实现原理先来看看用js 实现 jsonp 的代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js 实现jsonp </title> <script src="//cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script> </head> <body> <div id="test"></div> <script> function jsonpCallback(data) { $("#test").text(JSON.stringify(data)); } var scriptStr = '<script src="http://127.0.0.1:3000/?callback=jsonpCallback"></script>'; $("body").after(scriptStr); </script> </body> </html> 从代码可以看出来,要实现 jsonp 只是多定义了一个 回调函数
如果后台要返回一个回调函数包裹的字符串,在前端定义好该回调函数的方法,就能在回调函数中获取到后台返回的数据了。
返回来后会执行 常见问题(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |