• json


    Ajax:是一种异步请求的技术,主要是javascript里面的 XMLHttpRequest对象的使用。其全称为Asynchronous Javascript And Xml。名为:异步java脚本和可扩展标记语言。这里面拉了xml进来。原因在于当时xml作为数据传递最火的方式,javascript利用各种方式让自己变得流行。渐渐地出现了一种新的数据传输格式的载体json。这时候这个异步传输就基本可以换一个名字了叫做:ajaj,我起的名字【笑哭。】

    先来简单复习:

    异步请求指的是:在不影响用户操作的情况下,可以向服务器发送请求,同时可以接收服务器的响应。

    Ajax的组成部分有:javascript html css xml dom 其最重要的组成部分是XMLHttpRequest对象。

     

    异步请求的步骤:

    1、创建异步请求的对象, new XMLHttpRequest()

    2、基于当前已经创建的异步请求对象,打开连接: 

    open(method,url,asynchronous,username,password);后面这个两个参数就是问号传值,可以得到的【没有实现,问了一下老师,老师是这么说的,真伪没有验证。】

    3、设置回调函数,用来处理当前异步请求得到的服务器的反馈。【可以使用匿名函数】

    4、发送请求,有内容,就发对应的内容比如input标签体,或者xmlstring,或者等等内容,如果没有的话,就放一个null,来标识发送当前请求。当请求方式为get时,搞表单就是搞不出来。

    5、创建回调函数,在回调函数中,处理服务器响应回来的信息。首先要判断一下异步请求的状态,只有当请求的状态是4也就是异步交互完成的时候。并且http协议为200的时候,采取对响应进行处理。

     

    在响应过程中可以携带数据。

    geturl地址传值方式,或者 请求头方式传递参数。这种状况下,不能通过表单方式传递数据

    1、xmlHttpRequest.open("get", "TestServlet.do?username="+username, true);

    2、xmlHttpRequest.setRequestHeader("name", name);

    posturl地址传值方式,请求头方式传递信息,或者通过将请求头设置为

    1、xmlHttpRequest.open("post", "TestServlet3.do?name="+name, true);

    2、xmlHttpRequest.setRequestHeader("age", age);

    3、xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

    且:xmlHttpRequest.send("email="+email+"&age=23&name=lifei");

     

    前面说到了ajax命名的来源。如果不用这几种方式或者传递较多信息时,就采用xml的方式传递信息此时要将请求头信息设置为:   setRequestHeader("Content-Type","text/xml");

    然后在发送请求时:发送:send(xmlString).

    在控制层利用request.getReader();来得到一组数据。这个里面得到的是send里面发送的东西,并不含有其他的什么东西。

    刚刚完成了xml的传递与解析。

    其实异步请求的时候不仅可以请求服务器的动态数据,也可以请求在服务器端的静态内容也就是xml文件。二级联动的通过省份点击获得对应市的菜单就是这样一个例子。

     

    开头我们说了,xml已经过了气了,这个时候对于异步传输来说,有一种更加火爆的方式,json学名为:JavaScript Object Notation,汉语对应学名为:java脚本 对象 符号。

    Json之所以火爆是因为:

    1、轻量级的数据交换格式

    2、读写更加容易

    3、易于机器的解析和生成【主要是速度上】

    4、能够通过JavaScript中的eval()函数解析JSON

    5、Json支持多种语言。包括:ActionScriptCC#ColdFusionEJavaJavascriptMLobjective CAML,PerlPHPPythonRebolRubyLua等等。

  • 相关阅读:
    YYHSOI模拟赛题解(T6围栏问题)
    取水
    Spring.Net实现跨数据库服务层事务管理
    使用node.js + jsonserver + mock.js 搭建本地开发mock数据服务
    [转]SQL SERVER整理索引碎片测试
    asp.net mvc 安全测试漏洞 " HTTP 动词篡改的认证旁路" 问题解决
    JavaScript中子类调用父类方法的实现
    asp.net mvc 安全测试漏洞 "跨站点请求伪造" 问题解决
    C#学习记录3下——类的封装,继承,多态
    C#学习记录8——XAML
  • 原文地址:https://www.cnblogs.com/letben/p/5185315.html
Copyright © 2020-2023  润新知