Ajax-06 Ajax数据交换格式
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数据交换格式的更多相关文章
- 常用两种数据交换格式之XML和JSON的比较
目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生: 相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你 ...
- XML和JSON两种数据交换格式的比较
在web开发领域,主要的数据交换格式有XML和JSON,对于在 Ajax开发中,是选择XML还是JSON,一直存在着争议,个人还是比较倾向于JSON的.一般都输出Json不输出xml,原因就是因为 x ...
- 2016/4/2 json:js和jquery中轻量级数据交换格式 例: 窗口弹出 popwindow
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族 ...
- JSON——IT技术人员都必须要了解的一种数据交换格式
JSON作为目前Web主流的数据交换格式,是每个IT技术人员都必须要了解的一种数据交换格式.尤其是在Ajax和REST技术的大行其道的当今,JSON无疑成为了数据交换格式的首选! 今天大家就和猪哥一起 ...
- 数据交换格式之 - Json
Json简介: JSON是JavaScript对象表示法,是一种与语言无关的数据交换的格式,是一种完全独立于语言的文本格式. 使用ajax进行前后台数据交换,移动端与服务端的数据交换. web客户端和 ...
- Atitit.常见软件 数据 交换格式 标准
Atitit.常见软件 数据 交换格式 标准 1. 常见的数据格式txt ,doc ,pic,music ,vodio1 2. 通用格式json yaml phpstr1 3. 专用格式1 4. 用户 ...
- 在.NET使用JSON作为数据交换格式
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhoufoxcn.blog.51cto.com/792419/517093 我们 ...
- json 数据交换格式与java
http://wiki.mbalib.com/wiki/数据交换 数据交换是指为了满足不同信息系统之间数据资源的共享需要,依据一定的原则,采取相应的技术,实现不同信息系统之间数据资源共享的过程. 数据 ...
- NDEF-NFC数据交换格式
为实现NFC标签.NFC设备以及NFC设备之间的交互通信,NFC论坛(NFC FROUM)定义了称为NFC数据交换格式(NDEF)的通用数据格式.NDEF是轻量级的紧凑的二进制格式,可带有URL,vC ...
随机推荐
- git --fast-version-control
--distributed-is-the-new-centralized 读二进制文件 python 读doc xls 几乎所有的版本控制系统都以某种形式支持分支.使用分支意味着你可以把你的工作从 ...
- Python菜鸟之路:Django 缓存
Django中提供了6种缓存方式: 开发调试 内存 文件 数据库 Memcache缓存(python-memcached模块) Memcache缓存(pylibmc模块) 1. 开发调试 # 此为开始 ...
- 面试常见的selenium问题
1.如何切换iframe 问题:如果你在一个default content中查找一个在iframe中的元素,那肯定是找不到的.反之你在一个iframe中查找另一个iframe元素或default co ...
- 【我的Android进阶之旅】Android插件化开发学习资料
1.目前开源的插件开发框架大致有哪些? 1. 任玉刚 的 dynamic-load-apk Github 地址:https://github.com/singwhatiwanna/dynamic-lo ...
- Django继承
Django目前支持两种不同的继承方式,包括抽象基础类和多表继承. 1.抽象基础类: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 cla ...
- Python高级教程-切片
Python中的切片 取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>> L = ['A','B','C','D'] 对经常取指定索引范围的操作, ...
- Angular学习笔记—基础(转载)
创建简单组件 新建组件 $ ng generate component simple-form --inline-template --inline-style # Or $ ng g c simpl ...
- Linux Shell编程第1章——Shell脚本编程概述
目录 Linux和Shell简介 Linux是一套可免费使用和自由传播的类UNIX操作系统.Shell是一种具备特殊功能的程序,它提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令,并把它送 ...
- LeetCode:课程表【207】
LeetCode:课程表[207] 题目描述 现在你总共有 n 门课需要选,记为 0 到 n-1. 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹 ...
- curl类封装
<?php /** * @author askwei **/ class CURL { private $ch; private $url = "htt ...