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. SAP S/4 HANA与SAP Business Suite/R3(ECC)的区别

    转自:https://blog.csdn.net/zhongguomao/article/details/53515203 去年SAP推出了新一代商务套件SAP S/4 HANA,无疑是ERP行业创新 ...

  2. 取用户中文名 FDM_CUST_USER_NAME_READ_SINGLE

    DATA:lv_first TYPE ad_namefir,      lv_last  TYPE ad_namelas,      lv_full  TYPE ad_namtext.   CALL  ...

  3. html的css背景图的repeat

    HTML里background-image中,可以设置background-repeat实现平铺,前面博文中关于css样式换行的(相关博文:超文本css样式换行),其中有个三个div组合的,中间的di ...

  4. jQuery BlockUI Plugin Demo 3(Page Blocking Examples)

    This page demonstrates several ways to block the page. Each button below activates blockUI and then ...

  5. win7 vs2010 opengl配置教程

    一.安装GL库文件 1. opengl和glu的安装(不用安装) win7安装完成之后已经默认安装了opengl32.dll和glu32.dll,并且其对应的lib文件也已经安装

  6. Opencv官方例程简介

    opencv sample文件夹例程 No1. adaptiveskindetector.cpp 利用HSV空间的色调信息的皮肤检测,背景不能有太多与肤色相似的颜色.效果不是特别好. No2. bag ...

  7. 性能优化-Bitmap内存管理及优化

    Bitmap作为重要Android应用之一,在很多时候如果应用不当,很容易造成内存溢出,那么这篇文章的目的就在于探讨Bitmap的有效运用及其优化 缓存介绍 当多次发送请求的时候,请求同一内容,为了使 ...

  8. 打开app应用

    =========================================人才网 <!--app底部浮动广告--><style> footer { padding-bo ...

  9. Openssl 加解密文件

    使用openssl 的命令行进行文件的加密与解密过程,主要有两种方式: openssl 指定加密/解密算法加密 openssl 指定公钥/私钥文件加密 openssl 指定加密/解密算法加密 To E ...

  10. sql query skill

    https://www.w3resource.com/sqlite/sqlite-select-query-statement.php /* SELECT ChipID FROM "tb_X ...