1 json
1 js 对象
语法:
1 通过一对{}表示一个对象
2 在{}中允许通过 key:value 的形式来表示属性
3 多对的属性和值之间使用 , 隔开
2 什么中JSON
按照JS对象的格式所构建出来的字符串就是JSON串
在 ajax中,允许将复杂格式的响应数据(如列表等)构建成JSON格式的字符串再进行响应输出 3 JSON的表现
1 JSON表示单个对象
1 使用{}表示单个对象
2 在{}中使用key:value的格式表示数据
3 多对属性和值之间使用 ,隔开
4 key必须使用"引起来"
5 value如果是字符串的话,也需要用"引起来" ex:
var obj={
"name":"MrWang",
"age":37,
"gender":"Unknown"
}
2 JSON 表示多个对象
1 使用[](数组来表示多个对象)
2 数组中允许包含多个JSON对象 或字符串
1 使用JSON数组来表示若干字符串
var arr = ["王老师","王夫人","王小超"];
var str = '["王老师","王夫人","王小超"]';
2 使用JSON数组来表示若干对象
var arr =[
{"name":"王老师",
"age":37,
"gender":"男"
},
{"name":"王夫人",
"age":15,
"gender":"女"}
]
2 后台处理JSON
在后台查询数据时,需要先将数据转换为JSON格式的字符串,再响应给客户端,
到了前端再将字符串转换为JS对象再进行解析
1 步骤
1 后台先获取数据
数据类型为:
1 元组
2 列表
3 字典
2 在后台将数据转换为符合JSON格式的字符串
3 在后台将JSON格式字符串进行响应
4 在前端将JSON格式的字符串解析成JS的对象
2 python 中的JSON处理
使用python中的json类可以完成转换
import json
jsonStr = json.dumps(元组|列表|字典)
return jsonStr 1 jquery ajax
1 $obj.load(url,data,callback);
作用:异步加载数据到$obj元素中
参数:
1 url:异步请求的地址
2 data:传递给服务器端的参数(可选),该数据将决定请求方法是什么
1 可以传递普通的字符串
"name=Mrwang&age=30"
2 可以是JSON对象

"name":"MrWang",
"age"

3 callback:异步请求成功后的回调函数(可选)
取值为匿名函数
function(resText,statusText){
resText:响应数据
statusText:响应的状态文本
}
2 $.get()
1 语法:
$.get(url,data,callback,type)
1 url:异步请求地址
2 data:异步请求的参数
1 字符串:name=value&name=value
2 JSON:{"name":"value","name":"value"}
3 callback:请求成功时的回调函数
function(resText){
resText:表示响应成功后的响应数据
}
4 type:响应回来的数据的类型
1 html:响应回来的数据是html文本
2 text:响应回来的数据是text文本
3 json:响应回来的数据是json对象
4 script:响应回来的数据是js脚本代码
注意:如果此处指定了类型的话,那么在callback中,就无需再做类型的转换
3 $.post()
      
$.post('/20-server/',{'uname':"Mrwang","uage":30},function (data) {
console.log(data)
})

4 $.ajax()
作用:自定所有的ajax行为
语法:$.ajax({ajax设置的参数数据对象});
参数:
1 url:字符串,表示异步请求的地址
2 type:字符串,请求方式(get,post)
3 date:传递到服务器端的参数
1 字符串:"name=value&name=value"
2 JSON对象:{"name":"value"}
4 dataType:字符串,响应回来的数据的格式
1 html
2 xml
3 text
4 script
5 json
6 jsonp:有关跨域的响应格式
5 success:回调函数,请求和响应成功时的回调函数
function(data){
data:表示服务器响应回来的数据
}
6 error:回调函数,请求或响应失败时的回调函数
7 beforeSend:回调函数,在发送ajax请求之前的回调函数,如果return false的话则表示终止本次请求
ex:
$.ajax({
type: "post",
url: UC_PATH_ + "/user/checkTtsUser",
dataType: "json",
...
})
        $.ajax({
url:'/05-2?city='+id,
type:'get',
dataType:'json',
success:function (data) {
var html='';
$.each(data,function (i,j) {
html+='<option value="'+j.id+'">'+j.cityname+'</option>'
});
$("[name=select_city]").html(html)
}
})

-----ajax的实现及方法


 

2 跨域 - Cross Domain
1 什么是跨域
HTTP协议中 - 同源策略
同源:多个地址中,相同的协议,相同域名,相同端口被视为"同源"
在HTTP中,必须是同源地址才能相互发送请求,非同源地址被拒绝的(<script> 和 <img>) 跨域:非同源的网页,在相互发送请求时需要跨域
2 解决方案
通过 <script> 向服务器发送请求
由服务器资源指定前端页面的哪个方法来执行响应的数据 原生的JS完成跨域请求- 通过<script>完成跨域访问
<script>
$('#btnCross').click(function () {
{# $.get('http://127.0.0.1:5000/06-s',function (data) {#} {# 1 动态创建script #}
var script = document.createElement('script');
{# 2 为script标记的type属性赋值为text/javascript #}
script.type='text/javascript';
{# 3 为script标记的src属性赋值,指定跨域访问路径 #}
script.src = "http://127.0.0.1:5000/06-s"
{# 4 获取页面上的body元素#}
var body = document.body;
{# 5 将script标记追加到当前的页面中(body中):也就是
向src的地址发送请求,同时接收响应数据,响应数据交给了页面,
由页面当成js的脚本去执行0#}
body.append(script);
{# })#}
})

json _ ajax_跨域的更多相关文章

  1. AJAX_违反了同源策略_就是"跨域"——jsonp 和 cors

    https 协议    默认端口号 443 http 协议    默认端口号 80 同源策略 由网景公司提出的——浏览器 的 为了浏览器安全而生 同源策略: 协议.域名.端口号    必须完全一致 违 ...

  2. 访问本地json文件因跨域导致的问题

    我使用jquery的getJSON的方法获取本地的json文件,并进行操作,获取json 数据代码如下: $.getJSON("invite_panel.json",functio ...

  3. JSON异步及跨域

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. json解决ajax跨域的原理

    jsonp只能解决GET类型的ajax请求跨域问题 jsonp请求不是ajax请求,而是一般的get请求 基本原理 浏览器端: 动态生成<script>来请求后台接口(src就是接口的ur ...

  5. GTA项目 二, JSON接口开放跨域访问

    public class CORSAttribute : ActionFilterAttribute { public string Domains { get; set; } public CORS ...

  6. spring boot + spring security +前后端分离【跨域】配置 + ajax的json传输数据

    1.前言 网上各个社区的博客参差不齐 ,给初学者很大的困扰 , 我琢磨了一天一夜,到各个社区找资料,然后不断测试,遇到各种坑,一言难尽啊,要么源码只有一部分,要么直接报错... 最后实在不行,直接去看 ...

  7. 谷歌通过ajax获取本地JSON文件,为什么会显示跨域?转载的

    在本地写了一段JSON代码,然后用ajax读取后,在浏览器打开,发现谷歌提示涉及到跨域问题, 但是跨域是由于协议,域名,端口中有一个不同,才会跨域,我在本地访问自己的文件,怎么和跨域扯上关系了?? 谷 ...

  8. 谷歌通过ajax获取本地JSON文件,为什么会提示跨域?

    在本地写了一段JSON代码,然后用ajax读取后,在浏览器打开,发现谷歌提示涉及到跨域问题, 但是跨域是由于协议,域名,端口中有一个不同,才会跨域,我在本地访问自己的文件,怎么和跨域扯上关系了?? 下 ...

  9. 同源策略、跨域、json和jsonp

    同源策略 源(origin)就是协议.域名和端口号.若地址里面的协议.域名和端口号均相同则属于同源. 以下是相对于 http://www.a.com/test/index.html 的同源检测 • h ...

随机推荐

  1. 123457123456#0#-----com.yuming.baoBaoAiXueXi01hanzi--前拼后广--幼儿园宝宝学汉字

    123457123457#0#-----com.yuming.baoBaoAiXueXi01hanzi--前拼后广--幼儿园宝宝学汉字

  2. (六)利用JackSon工具将JSON文件和对象互转

    1. 需要下载JackSon工具,并导入到: 2. 编写html页面: <!DOCTYPE html> <html> <head> <meta charset ...

  3. npm镜像指定用淘宝镜像去下载

    使用npm下载,蜗牛,使用cnpm又觉得那啥,所以.把cnpm也就是淘宝镜像绑定成npm下载的代理,这样使用npm的时候其实是用淘宝镜像去下载,这感觉,good! 1. npm config set ...

  4. python获取昨日日期

    获取昨日日期oneday = datetime.timedelta(days=1) 一天 day = datetime.datetime.strptime(self.date,'%Y-%m-%d') ...

  5. CommMonitor10.0.3串口过滤工具(serial port monitor)

    CommMonitor  串行端口监视精灵是用于RS232 / RS422 / RS485端口监控的专业强大的系统实用程序软件.CommMonitor监视显示,记录和分析系统中的所有串行端口活动.这是 ...

  6. Windows 10 下使用 MinGW-w64 编译 OpenCV-4.1.1

    1. 下载安装 CMake 2. 下载安装 MinGW-w64,假设安装于 X:\path\to\MinGW-w64 此处注意选择 POSIX 版本而非 Win32 版本,因为 OpenCV 调用了标 ...

  7. opencv-windows安装教程

    一.下载opencv 下载链接: https://opencv.org/releases/ 二.运行exe 运行exe(其实是解压),将压缩包解压到相应目录,如: D:\Program Files ( ...

  8. 【谷歌浏览器】修改和添加Cookie

    一.使用谷歌浏览器 1.1.修改ookie 方法一:直接用开发者工具修改: 操作如图:   参考: 检查和删除 Cookie · Chrome 开发者工具中文文档 http://www.css88.c ...

  9. 给引入页面的js和css资源加上版本号,防止浏览器缓存资源

    最近因为在做前端开发的相关工作,每次发布新版本以后,不到5分钟,测试童鞋一个接一个的抱怨说BUG根本就没有修改,这个时候你说的最多的话就是“清缓存!!清页面缓存!!你没有清缓存!!你清理了页面缓存就对 ...

  10. vue中添加less配置,用于计算div高度

    需求:左边垂直的菜单栏高度设置为 100% - 导航栏的高度(3.6rem) 首先,从vue-cli脚手架里的安装的webpack模板中并没有less的依赖配置,得自己手动添加安装 安装命令::npm ...