1.数据交换格式

  服务端返回的数据,在本质上都是字符串,只是原生Ajax 或jQuery Ajax将这些字符串转换为容易理解的各种常用格式。

a. Text

  文本字符串

b.  XML

  JavaScript中特殊的对象

c. JSON

  JavaScript中JSON值数组、字典

d. Script

  通过eval将字符串当做javaScript代码执行 eval("alert(123);")

2.原生Ajax

text:

  xhr.responseText

xml:

  xhr.responseXML

json:

  JSON.parse(xhr.responseText)

script:

  eval(xhr.responseText)

3.jQuery Ajax

text:

  dataType:'text'

xml:

  dataType:'xml'

json:

  dataType:'json'

script:

  dataType:'script'

jQuery Ajax 四种格式转换实例

url.py

from django.conf.urls import url
from hello import views urlpatterns = [
url(r'resp_type/', views.resp_type, name='resp_type'),
url(r'resp_text/', views.resp_text, name='resp_text'),
url(r'resp_xml/', views.resp_xml, name='resp_xml'),
url(r'resp_json/', views.resp_json, name='resp_json'),
url(r'resp_script/', views.resp_script, name='resp_script'), ]

views.py

#!/usr/bin/env python
# -*- coding: utf-8 -*- from django.http import HttpResponse
from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt def resp_type(request):
return render(request, 'resp_type.html') @csrf_exempt
def resp_text(request):
content = "Hello World!"
return HttpResponse(content) @csrf_exempt
def resp_xml(request):
content = """
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
"""
# 默认响应内容是 text/html;charset=utf-8
response = HttpResponse(content, content_type='application/xml;charset=utf-8')
response.status_code = 200
return response @csrf_exempt
def resp_json(request):
content = '{"name":"Milton","age":18}'
return HttpResponse(content) @csrf_exempt
def resp_script(request):
content = "alert(123);"
return HttpResponse(content)

resp_type.html:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ajax数据交换格式</title>
</head>
<body> <h1>jQuery-Ajax数据交换格式</h1>
<input type="button" onclick="RespText();" value="响应text字符串">
<input type="button" onclick="RespXml();" value="响应xml字符串">
<input type="button" onclick="RespJson();" value="响应json字符串">
<input type="button" onclick="RespScript();" value="响应script字符串"> <script src="http://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
function RespText() {
$.ajax({
url: {% url 'resp_text' %},
dataType: 'text',
success: function (data, statusText, xmlHttpRequest) {
console.log(data);
}
});
} function RespXml() {
$.ajax({
url: {% url 'resp_xml' %},
dataType: 'xml',
success: function (data, statusText, xmlHttpRequest) {
console.log(data);
},
error: function (xmlHttpRequest, statusText, errorThrown) {
console.log(statusText);
}
});
} function RespJson() {
$.ajax({
url: {% url 'resp_json' %},
dataType: 'json',
success: function (data, statusText, xmlHttpRequest) {
console.log(data);
}
});
} function RespScript() {
$.ajax({
url: {% url 'resp_script' %},
dataType: 'script',
success: function (data, statusText, xmlHttpRequest) {
console.log(data);
}
});
}
</script>
</body>
</html>

测试结果:


***微信扫一扫,关注“python测试开发圈”,了解更多测试教程!***

Ajax-06 Ajax数据交换格式的更多相关文章

  1. 常用两种数据交换格式之XML和JSON的比较

    目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生: 相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你 ...

  2. XML和JSON两种数据交换格式的比较

    在web开发领域,主要的数据交换格式有XML和JSON,对于在 Ajax开发中,是选择XML还是JSON,一直存在着争议,个人还是比较倾向于JSON的.一般都输出Json不输出xml,原因就是因为 x ...

  3. 2016/4/2 json:js和jquery中轻量级数据交换格式 例: 窗口弹出 popwindow

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族 ...

  4. JSON——IT技术人员都必须要了解的一种数据交换格式

    JSON作为目前Web主流的数据交换格式,是每个IT技术人员都必须要了解的一种数据交换格式.尤其是在Ajax和REST技术的大行其道的当今,JSON无疑成为了数据交换格式的首选! 今天大家就和猪哥一起 ...

  5. 数据交换格式之 - Json

    Json简介: JSON是JavaScript对象表示法,是一种与语言无关的数据交换的格式,是一种完全独立于语言的文本格式. 使用ajax进行前后台数据交换,移动端与服务端的数据交换. web客户端和 ...

  6. Atitit.常见软件 数据 交换格式 标准

    Atitit.常见软件 数据 交换格式 标准 1. 常见的数据格式txt ,doc ,pic,music ,vodio1 2. 通用格式json yaml phpstr1 3. 专用格式1 4. 用户 ...

  7. 在.NET使用JSON作为数据交换格式

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhoufoxcn.blog.51cto.com/792419/517093 我们 ...

  8. json 数据交换格式与java

    http://wiki.mbalib.com/wiki/数据交换 数据交换是指为了满足不同信息系统之间数据资源的共享需要,依据一定的原则,采取相应的技术,实现不同信息系统之间数据资源共享的过程. 数据 ...

  9. NDEF-NFC数据交换格式

    为实现NFC标签.NFC设备以及NFC设备之间的交互通信,NFC论坛(NFC FROUM)定义了称为NFC数据交换格式(NDEF)的通用数据格式.NDEF是轻量级的紧凑的二进制格式,可带有URL,vC ...

随机推荐

  1. python基础之类的继承与派生、组合、接口与归一化设计、抽象类、子类中调用父类方法

    一.什么是继承 继承是一种创建新的类的方式,新建的类可以继承自一个或者多个父类,原始类称为基类或超类,新建的类称为派生类或子类. 派生:子类继承了父类的属性,然后衍生出自己新的属性,如果子类衍生出的新 ...

  2. 调用百度API将地名转为经纬度

    最近做一道数据科学竞赛题,特征中有城市名和地名,需要转为经纬度来使用 故用python写了一个地名转经纬度的脚本,调用了百度地图的API,key在百度地图开放平台上申请 申请key的地方:http:/ ...

  3. Django - 回顾(2)- 中介模型

    一.中介模型 我们之前学习图书管理系统时,设计了Publish.Book.Author.AuthorDetail这样几张表,其中Book表和Author表是多对多关系,处理类似这样简单的多对多关系时, ...

  4. 002-es6字符串扩展

    1.字符串扩展 参考地址:http://es6.ruanyifeng.com/#docs/string 1.1.codePointAt() JavaScript 内部,字符以 UTF-16 的格式储存 ...

  5. oracle external密码验证

    什么是external密码验证 当OS user 中存在和DB user 同名的用户时   直接使用和DB user 同名的OS user 可以不输入密码直接登录数据库, [oracle@zxrac1 ...

  6. blogCMS中出现的错误整理

    1.在写日期归档的时候,出现如下错误: not enough values to unpack (expected 2, got 1) 出现这个错误是因为:字符串需要能够split成2份才能赋值给2个 ...

  7. python之元组操作

    1.元组创建 tup1 = ('physics', 'chemistry', 1997, 2000) tup2 = (1, 2, 3, 4, 5 ) tup3 = "a", &qu ...

  8. s5_day13作业

    #对之前文件进行的增删改查操作实现日志操作,日志输出用户进行过的操作. def log(): import logging logger_obj=logging.getLogger() logger_ ...

  9. ArcGis 获取数据表中某字段唯一值

    from:http://www.cnblogs.com/3echo/archive/2006/08/16/478094.html 1 /// <summary>               ...

  10. javaEE中的字符编码问题

    0 web.xml中注册的CharacterEncodingFilter <!-- 配置字符集过滤器 --> <filter> <filter-name>encod ...