热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

web前端ajax

一:Json2.1何谓JsonJSON(JavaScriptObjectNotation,JS对象标记)是一种轻量级的数据交换格式。它基于ECMAScript

 

一: Json

 

2.1 何谓Json

JSON(Javascript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。
它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。
简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率

JSON 格式于2001年由 Douglas Crockford 提出,目的就是取代繁琐笨重的 XML 格式。

JSON 格式有两个显著的优点:书写简单,一目了然;符合 Javascript 原生语法,可以由解释引擎直接处理,不用另外添加解析代码。所以,JSON迅速被接受,已经成为各大网站交换数据的标准格式,并被写入ECMAScript 5,成为标准的一部分。

#在线json格式解析
Bejson
http://www.bejson.com/

 

2.2 Json和Python数据对比

Python Json
dict object
list,tuple array
str string
int,fload number
True true
Flase false
None null

 

2.3 合格的JSON应该具备哪些条件

  • 属性必须使用双引号括起来
  • 不能使用undefined或者函数或者日期对象
  • 只要是合规的JSON都可以用相应语言进行反序列操作

 

2.4 在JS中序列化和反序列化

 

2.4.1  序列化方法 JSON.stringify()


结果如下

 

2.4.2 反序列方法 JSON.parse()


结果如下

 

二: ajax

AJAXAsynchronous Javascript And XML)翻译成中文就是异步JavascriptXML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML)。

具有如下特性

  •  异步
  • 局部刷新

 

语法


 

 

 

  我们通过一个登陆例子解释

# 前端页面

<body>
{% csrf_token %}
用户名:<input id="user" type="text"><br>
密码: <input id="pwd" type="password"><br>
<input type="button" id="loginBtn" value="登陆"><span id="login_error">span>


<script>
    //  绑定事件
    $(\'#loginBtn\').click(function () {
        $.ajax({
            // 往服务器传参
            url: \'/login/\',
            type: \'post\',
            data: {
                user: $(\'#user\').val(),
                pwd: $(\'#pwd\').val(),
                csrfmiddlewaretoken: $("[name = \'csrfmiddlewaretoken\']").val()
            },
            success:function (response) {
                // 反序列化服务端返回的数据
                var response_obj = JSON.parse(response);
                console.log(response_obj);
                if(response_obj.user){
                    //  登陆成功
                    location.href=\'http://www.baidu.com\';
                }else{
                    // 登陆失败
                    $(\'#login_error\').html(response_obj.message)
                }
            }
        })
    })
script>
body>

# 后端处理

def login(request):
    response = {\'user\': None,\'message\':None}
    if request.method == \'POST\':
        user = request.POST.get(\'user\')
        pwd = request.POST.get(\'pwd\')
        db_search_ret = Userinfo.objects.filter(name=user,password=pwd).first()
        if db_search_ret:
            response[\'user\'] = user
        else:
            response[\'message\'] = \'用户名或者密码错误\'
        return  HttpResponse(json.dumps(response))
    else:
        return render(request,\'login.html\')

 

范例1:

{% csrf_token %}
+
=






 

范例2: 获取csrfToken的第二种方法

# 单独放一个文件,在ajax之前导入即可
function getCOOKIE(name) { var COOKIEValue = null; if (document.COOKIE && document.COOKIE !== \'\') { var COOKIEs = document.COOKIE.split(\';\'); for (var i = 0; i

  

 范例2: 发送的数据不能有二次结构,如列表,需要使用JSON.stringify格式化。

        $.ajax({
            url: \'/fm/test/\',
            type: \'Post\',
            data: {
                \'name\': \'小黑\',\'sb\': JSON.stringify([[1,32,3],[4,5,6]])
            },

  

 

  

  

 


推荐阅读
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 本文介绍了使用FormData对象上传文件同时附带其他参数的方法。通过创建一个表单,将文件和参数添加到FormData对象中,然后使用ajax发送POST请求进行文件上传。在发送请求时,需要设置processData为false,告诉jquery不要处理发送的数据;同时设置contentType为false,告诉jquery不要设置content-Type请求头。 ... [详细]
  • 本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ... [详细]
  • Python入门后,想要从事自由职业可以做哪方面工作?1.爬虫很多人入门Python的必修课之一就是web开发和爬虫。但是这两项想要赚钱的话 ... [详细]
author-avatar
MiMe淘宝店
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有