ajax返回原理相关知识
-
Ajax叠加(Ajax返回数据用Ajax提交) 最近在做人事管理系统的一个签到功能,首先是把部门当做参数,把参数用Ajax发送到数据库进行查询,然后以表格形式动态生成员工信息到返回页面的Div里,表格最后的一列是签到按钮,这时我想用JQuery继续获取被点击的“签到”按钮,然后用Ajax将数据发送到数据库签到表,更新签到表,于是我就把每个签到按钮的id属性设置成第一次Ajax返回的每个员工信息的工号,再次用JQuery获取,怎么获取呢?想到了标签加事件选择器,于是写了下面代码: $(function(){ $("tr input:button").click(){ $.ajax({ &
-
ajax返回值 json 乱码 解决方案ajax的返回值一直乱码,试过各种ContentType设定utf-8的方法,就是搞不定,而且明明返回值是json字符串,一直出现ajax取得返回值类型为object。最后查资料发现,SpringMVC使用 @ResponseBody注解,返加字符串不做任何处理时,有可能会出现乱码问题。这是由于 StringHttpMessageConverter 类中,默认采用的字符集是 ISO-8859-1。public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String> { public static final Charset DEFAULT_CHARSET = C
-
struts2+ajax+jQuery 保存数据,返回成功与否struts2+ajax+jQuery返回数值问题 今天做了一个WEB端,保存数据,并返回保存成功与否的模块。 代码贴出来:struts2.xml<action name="updateMsg" class="web.UpdateMsgAction"></action> UpdateMsgAction.java文件public String execute() throws IOException { // 返回修改的行数 // uDao是持久层,连接数据库,进行数据操作 int row = uDao.up
-
JQUERY AJAX请求成功,返回了数据,但是不进SUCCESS的问题 【转】这几天一直被 ajax请求成功,返回了数据,但是不进success的问题困扰着,怎么弄就是解决不了,总以为 是:$(document).ready(function(){});没起作用,一直找页面加载的方法来试,整了好几天没整出来....今天比较幸运, 在网上找到了一篇关于这方面问题的文章,按上面的方法一试,果然ok了,哈哈哈,真是太高兴了....终于解决这个问题了。 这个问题的原因来自myexception.cn/ajax/413061.html拷贝内容 --------------------------拷贝内容 start ---------------------------------------
ajax返回原理相关课程
ajax返回原理相关教程
- 5. Ajax 的工作原理 Ajax 相当于用户端和服务端的一个中间层,用来处理异步化的数据交互。这里涉及到两个重要的点:XMLHttpRequest 和 异步。先讲异步,异步指的是用户无需等待,异步操作不会阻碍当前用户的活动。在早期,对于我们的 Web 交互,每次用户发送请求,都会阻塞当前活动,进行页面重载。而在服务器响应请求之前,浏览器只能是一片空白。体验极其差!然而,使用异步就能够解决这个问题,浏览器端发送请求,但是不会阻塞用户当前的活动,也不会丢弃当前页面,数据一样可以进行交互和刷新。体验效果极佳!另一个 XMLHttpRequest 可以说是 Ajax 的核心技术。使用 XMLHttpRequest ,我们可以通过 JavaScript 向服务端发送请求,并且获取和处理服务端返回的数据,却不会阻塞用户活动,而仅仅只是局部动态更新,更加不会导致 web 页面频繁重载。Ajax 工作过程大致如下:JavaScript 通过 XMLHttpRequest 向后端发起异步请求,可以是 get 或者 post 等;服务端接收请求,处理并返回数据;JavaScript 通过 XMLHttpRequest 获取并解析服务端返回的数据内容;JavaScript 通过动态更新 DOM 或者执行其他操作。
- Ajax 处理服务端响应 在浏览器发送 Ajax 请求之后,下一步骤自然是服务器响应。服务器在接收到请求之后会进行一系列处理步骤,最终返回结果。而与此同时,客户端会在接收到返回的结果之后进行界面的展示或者数据的处理。本章节主讲 Ajax 收到返回数据后处理服务器响应过程。
- 3.2 返回 json 类型 视图函数直接返回 json 数据是在微服务架构中常见的套路。这里 Django 程序只提供后端数据并不提供静态资源。针对返回 json 数据,在 Django 中专门定义了一个 JsonResponse 类用来生成 json 数据。它实际上是继承自 HttpResponse 类:# django/http/response.py# 忽略其他内容class JsonResponse(HttpResponse): """ 忽略注释部分内容 """ def __init__(self, data, encoder=DjangoJSONEncoder, safe=True, json_dumps_params=None, **kwargs): if safe and not isinstance(data, dict): raise TypeError( 'In order to allow non-dict objects to be serialized set the ' 'safe parameter to False.' ) if json_dumps_params is None: json_dumps_params = {} kwargs.setdefault('content_type', 'application/json') data = json.dumps(data, cls=encoder, **json_dumps_params) super().__init__(content=data, **kwargs)JsonResponse 类的使用和 HttpResponse 类一样简单,我们只需要把字典数据传给 JsonResponse 类进行实例化即可。但是字典数据中存在中文时候,会出现乱码,我们只需要在实例化 JsonResponse 时,多传入一个参数即可:# 在页面上会出现乱码def hello_world(request, *args, **kwargs): data = {'code': 0, "content": "返回中文字符串", "err_msg": ""} return JsonResponse(data)# 经过处理后的JsonResponsedef hello_world(request, *args, **kwargs): data = {'code': 0, "content": "返回中文字符串", "err_msg": ""} return JsonResponse(data, json_dumps_params={'ensure_ascii': False})请求结果:# 第一个不处理的 JsonResponse 返回[root@server ~]# curl "http://127.0.0.1:8881/hello/"{"code": 0, "content": "\u8fd4\u56de\u4e2d\u6587\u5b57\u7b26\u4e32", "err_msg": ""}# 使用第二个数据处理后的HttpResponse返回[root@server ~]# curl "http://127.0.0.1:8881/hello/"{"code": 0, "content": "返回中文字符串", "err_msg": ""}另外一种比较好的方式是,仿照 JsonResponse 类,定义一个支持返回包含中文 json 数据的 Response 类:# 忽略导入模块# 将原来支持的json_dumps_params参数固定写死成{'ensure_ascii':False}class JsonResponseCn(HttpResponse): """ 忽略注释部分内容 """ def __init__(self, data, encoder=DjangoJSONEncoder, safe=True, **kwargs): if safe and not isinstance(data, dict): raise TypeError( 'In order to allow non-dict objects to be serialized set the ' 'safe parameter to False.' ) kwargs.setdefault('content_type', 'application/json') data = json.dumps(data, cls=encoder, **{'ensure_ascii':False}) super().__init__(content=data, **kwargs)这样处理后,我们在和原来一样使用 JsonResponseCn 类来返回 json 数据即可,不用考虑返回的字典数据中是否包含中文字符:def hello_world(request, *args, **kwargs): data = {'code': 0, "content": "返回中文字符串", "err_msg": ""} return JsonResponseCn(data)
- 4. 什么是 Ajax? 说这么多,那么什么是 Ajax 呢?简单来讲,Ajax 就是 JavaScript 基于 XMLHttpRequest 对象与服务端进行交互,向服务端发送一个请求,并且获取和处理服务器返回的内容。在这个过程中,我们可以使用 XML ,HTML 和 JSON 等格式的数据进行交互。并且,Ajax 拥有异步特质,我们可以在不刷新页面的情况下,通过交互数据,在页面上做局部的刷新等数据处理。
- 5. 使用 AOP 统一后端返回值格式 前后端分离的项目结构中,前端通过 Ajax 请求后端接口,此时最好使用统一的返回值格式供前端处理。此处就可以借助 AOP 来实现正常情况、异常情况返回值的格式统一。
- 4.$.ajax 和 deferred 在 jQuery 中,通常都会有一些耗时比较长的操作,我们是无法马上得到结果的。对于 $.ajax 而言,我们的请求往往都要依靠网络传输和服务端的处理。这时我们的一贯处理方式就是给定某个回调函数,当耗时操作结束返回数据以后,及时调用这个回调函数来进行进一步的处理。在 jQuery 1.5 版本之后就改变了这一点,deffered 在 jQuery 中诞生了!字面来看,defer 代表的是“延迟”的意思,这也对应着我们的延时操作。使用 deffered ,我们将改变使用回调函数的做法,转而使用的是链式调用。这其实也正是拥抱了 jQuery 的设计思想,使用过 jQuery 的同学都知道,jQuery 对节点的操作往往都会封装为一个 jQuery 的对象进行统一管理,而 deffered 也正是如此,会对延时操作做一个统一的管理,并且提供统一的编程接口,比如 done 和 fail。举个栗子,我们使用 $.ajax 来进行数据的请求,可以变体为:$.ajax({ url: '/jquery_ajax/get', method: 'GET', data: { a: '123', b: '234' }}).done(data => { console.log(data)}).fail(err => { console.log(err)})事实上在 deffered 出来之后,$.ajax 也开始返回一个 deffered 对象。细心的同学可以看到,这不是一个 promise 么?是的,可以这样说,但是也不尽然,jQuery 根据自己的需要实现了这样一个东西,它支持 promise 的一些规范,同时也支持自己的特权方法。我们在使用 deffered 的时候,很直观的可以看到,我们从回调函数的传统方式中解脱了出来。除此之外,由于 Promise 的反控制反转,使得我们的程序变得更加健壮,我们对结果操作更有掌控权。
ajax返回原理相关搜索
-
ajax
android
a href
abap
abap开发
abort
absolutelayout
abstractmethoderror
abstracttablemodel
accept
access
access教程
accordion
accumulate
acess
action
actionform
actionlistener
activity
addeventlistener