AJAX-前后端开发的纽带

秒速五厘米 2022-06-13 11:09 233阅读 0赞

最近更新时间:2017年7月6日15:30:40

《我的博客地图》

  1. Ajax,Asyncchronous JavaScropt and Xml,异步jsxml,是一种异步请求的技术,这项技术能够向服务器请求额外数据,而无需卸载页面。
  2. Ajax技术的核心是XMLHttpRequest对象(简称XHR)。

1、原生js封装XHR对象

function createXHR(){

//其他兼容情况

return new XMLHttpRequest();

}

var xhr = createXHR();

xhr.onreadystatechange = function(){

if(xhr.readyState == 4 && xhr.status == 200){

  1. alert( xhr.responseText );

}

}

xhr.open(‘get’,’demo.php’,true);

xhr.setRequestHeader(“MyHeader”,”Myvalue”)

xhr.send(null);

2、封装好的API

  1. 微信小程序的ajax请求:wx.request(\{url: getApp().HOST + '/list',data\{\},success: function(res) \{\},fail: function(res) \{\}\});
  2. JQuery ajax,是对原生XHR的封装,除此以外还增添了对JSONP的支持。

$.ajax({
type: ‘POST’,
url: url,
data: data,
dataType: dataType,
success: function () {},
error: function () {}
});

3、请求数据传递参数遇到的问题

  1. 一般情况下,向后端传递的参数如果为 '' null 时,key value 都不需要发送,前端需要做空数据过滤操作(js编写动态json数据,属于对象深拷贝),对于简单的一维对象操作如下:

let obj = this.data.detailInfo

let sendData = {}
for(var item in obj){
if(obj[item] != null && obj[item] != ‘’){
sendData[item] = obj[item]
}
}

  1. 最终,sendData对象中存储的数据是经过 空数据过滤 后的深拷贝对象数据。

4、前后端接口对接的相关问题

  1. 在做前后端分离开发的过程中,接口定义和参数对接及其重要,这对于开发效率和理清逻辑思路是最重要的两点。接口定义需要解决的问题是,前后端开发人员对接口名称、接口功能以及接口复杂度达成共识;参数对接需要解决的问题是,前后端开发人员对于参数的个数、内容和格式要提前告知和声明。经常遇到的问题:
  2. 第一,前端需要的参数后端接口没有返回,后端接口需要的参数,前端提供的格式不正确,还有接口参数缺少的现象。
  3. 第二,产品功能上出现bug时,前后端都可以修复,这个bug该由谁来解决的问题。

5、关于JSON数据

  1. JSON: JavaScript Object Notation(JavaScript 对象表示法),轻量级的文本数据交换格式,独立于语言,具有自我描述性,更易理解,JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHPJSP,.NET)编程语言都支持JSON
  2. JSON是比js语法更加严谨的一种数据描述对象,JSON常见三种格式:\{\}\[\{\},\{\},...\]\{\[\],\[\],...\}
  3. JSON 数据的书写格式是:名称/值对,在双引号中
  4. JSON数据中不允许包含任何注释内容,否则会报错。(如需要注释内容,必须以键值对形式表示)
  5. JSONJavaScript的相互转换:
  6. JSON.parse()将数据(json字符串)转换为js对象
  7. JSON.stringify()将js对象转换为json字符串

6、JSONP

  1. Jsonp(JSON with Padding) json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。即,跨域数据交互协议
  2. 从不同的域(网站)访问数据需要这个特殊的技术-JSONP,因为同源策略,它是由Netscape提出的一个著名的安全策略,现在所有支持JavaScript 的浏览器都会使用这个策略。
  3. 实例:

7、jQuery的跨域请求实例

function purchaseNum(){
$.ajax({
type:’get’,
url:’http://\*\*\*.wanshaobo.com/data‘,
dataType:’jsonp’,
jsonp: ‘callback’,
jsonpCallback:”jsonpCallback”,
success: function(data){}
});
}

8、ajax与jsonp的异同
ajax的核心是通过XmlHttpRequest获取非本页内容,而jsonp的核心则是动态添加

发表评论

表情:
评论列表 (有 0 条评论,233人围观)

还没有评论,来说两句吧...

相关阅读