首页
关于
留言
壁纸
更多
直播
统计
友链
Search
1
面试常见问题100问
190 阅读
2
最新Navicat 15 for MySQL破解+教程 正确破解步骤
179 阅读
3
一个人要走的时候,千万别问原因
162 阅读
4
好用的软件分享
142 阅读
5
直击心灵的唯美句子
119 阅读
日常记录
后端
PHP
NodeJs
Python
Java
前端
JavaScript
数据库
MySQL
服务器
美文
微信开发
微信公众号
微信小程序
登录
Search
标签搜索
mysql
python
django
express
面试
axios
thinkphp
PHP
励志
哲理
九九乘法表
node
cors
跨域
唯美句子
美文
文件上传
ajax
算法
jwt
公子初心
累计撰写
68
篇文章
累计收到
9
条评论
首页
栏目
日常记录
后端
PHP
NodeJs
Python
Java
前端
JavaScript
数据库
MySQL
服务器
美文
微信开发
微信公众号
微信小程序
页面
关于
留言
壁纸
直播
统计
友链
搜索到
1
篇与
的结果
2022-09-22
原生ajax封装,原生跨域请求jsonp封装
原生ajax封装代码 function ajax(options) { var defaults = { type:'get', url:'', data:{}, headers:{ 'Content-type':'application/x-www/form-urlencoded' }, success:function(){}, error:function(){} } // 使用options对象中的属性覆盖defaults对象中的属性 Object.assign(defaults,options); var xhr = new XMLHttpRequest(); // get 请求 url = "http://localhost:3000?a=1&b=2;" var params = ''; for(var i in options.data){ params+=i+'='+defaults.data[i]+'&'; } // 去掉多余的&符号 params = params.substr(0,params.length-1); if(defaults.type == 'get'){ defaults.url = defaults.url + '?' + params; } // console.log(params); xhr.open(defaults.type,defaults.url) if(defaults.type == 'get'){ xhr.send(); }else{ var contentType = defaults.headers['Content-type']; xhr.setRequestHeader('Content-Type',contentType); if(contentType == 'application/json'){ xhr.send(JSON.stringify(defaults.data)); }else{ xhr.send(params); } } xhr.onload = function(){ // text/html; charset=utf-8 application/json; charset=utf-8 console.log(xhr.getResponseHeader('Content-Type')); var contentType = xhr.getResponseHeader('Content-Type'); var responseText = xhr.responseText; if(contentType.includes('application/json')){ responseText = JSON.parse(responseText) } // 当http状态码为200的时候,调用对用成功失败的情况 if(xhr.status == 200){ options.success(responseText,xhr); }else{ options.error(responseText,xhr); } } }原生jsonp跨域请求代码 var btn = document.querySelector("button"); btn.onclick = function(){ jsonp({ url:'http://localhost:3000/jsonp', data:{ name:'xiaoming', age:18 }, success:function(data){ console.log(data); } }); } // 封装jsonp函数 function jsonp(options){ // 1.创建script节点 var script = document.createElement('script'); var fn = 'fn'+Math.random().toString().replace('.',''); // 局部变量函数赋值给全局变量函数fn window[fn] = options.success; var params = ''; for(var i in options.data){ params +='&'+i+'='+options.data[i]; } // 2.为script标签设置属性 script.src = options.url + "?callback="+fn+params; document.body.appendChild(script) // 3.节点加载完毕删除节点 script.onload = function(){ script.remove(); } }
2022年09月22日
33 阅读
0 评论
0 点赞