json _ ajax_跨域
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_跨域的更多相关文章
- AJAX_违反了同源策略_就是"跨域"——jsonp 和 cors
https 协议 默认端口号 443 http 协议 默认端口号 80 同源策略 由网景公司提出的——浏览器 的 为了浏览器安全而生 同源策略: 协议.域名.端口号 必须完全一致 违 ...
- 访问本地json文件因跨域导致的问题
我使用jquery的getJSON的方法获取本地的json文件,并进行操作,获取json 数据代码如下: $.getJSON("invite_panel.json",functio ...
- JSON异步及跨域
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- json解决ajax跨域的原理
jsonp只能解决GET类型的ajax请求跨域问题 jsonp请求不是ajax请求,而是一般的get请求 基本原理 浏览器端: 动态生成<script>来请求后台接口(src就是接口的ur ...
- GTA项目 二, JSON接口开放跨域访问
public class CORSAttribute : ActionFilterAttribute { public string Domains { get; set; } public CORS ...
- spring boot + spring security +前后端分离【跨域】配置 + ajax的json传输数据
1.前言 网上各个社区的博客参差不齐 ,给初学者很大的困扰 , 我琢磨了一天一夜,到各个社区找资料,然后不断测试,遇到各种坑,一言难尽啊,要么源码只有一部分,要么直接报错... 最后实在不行,直接去看 ...
- 谷歌通过ajax获取本地JSON文件,为什么会显示跨域?转载的
在本地写了一段JSON代码,然后用ajax读取后,在浏览器打开,发现谷歌提示涉及到跨域问题, 但是跨域是由于协议,域名,端口中有一个不同,才会跨域,我在本地访问自己的文件,怎么和跨域扯上关系了?? 谷 ...
- 谷歌通过ajax获取本地JSON文件,为什么会提示跨域?
在本地写了一段JSON代码,然后用ajax读取后,在浏览器打开,发现谷歌提示涉及到跨域问题, 但是跨域是由于协议,域名,端口中有一个不同,才会跨域,我在本地访问自己的文件,怎么和跨域扯上关系了?? 下 ...
- 同源策略、跨域、json和jsonp
同源策略 源(origin)就是协议.域名和端口号.若地址里面的协议.域名和端口号均相同则属于同源. 以下是相对于 http://www.a.com/test/index.html 的同源检测 • h ...
随机推荐
- python 中 dict 的另一种用法
python 中 dic另一种用法 描述 Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 dict={} dict.get(k1,Non ...
- Node.js使用supervisor
对代码的修改,每次都要重新启动服务器,使用supervisor它会监视你对代码的改动,并自动重启 Node.js. 1> npm安装: npm install -g supervisor 2&g ...
- mysql常用命令、非交互式mysql命令看29条
CentOS下mysql数据库常用命令总结1.更改root密码 mysqladmin -uroot password 'yourpassword' 2.远程登陆mysql服务器 mysql -uroo ...
- END使用
[root@bogon ~]# cat d.sh #!/bin/bash#. /etc/init.d/functionscat <<END+------------------------ ...
- pcntl_waitpid函数解释
pcntl_waitpid 等待或返回fork的子进程状态.多进程的主进程创建了子进程,那主进程如何确认子进程的状态呢. 假如主进程需要根据子进程的状态做不同的处理呢, 这里的状态包括子进程被kill ...
- Java使用PegDown将markdown文件转成html格式
maven依赖: <dependency> <groupId>org.pegdown</groupId> <artifactId>pegdown< ...
- .Net Core 常用开发工具
组件名 描述 可选版本 推荐版本 Visual Studio Community 社区免费版 For Visual Studio 2017 For Visual Studio 2019 Visual ...
- webpack官网demo起步中遇到的问题
在webpack官网demo一开始搭建中
- HDMI/DVI 显示器热插拔与检测原理(HPD)
HDMI(19Pin)/DVI(16 pin)的功能是热插拔检测(HPD),这个信号将作为主机系统是否对HDMI/DVI是否发送TMDS信号的依据.HPD是从显示器输出送往计算机主机的一个检测信号.热 ...
- [转帖]redis知识点总结
redis面试常问知识点总结 https://www.toutiao.com/i6740199554127233543/ 原创 波波说运维 2019-10-02 00:01:00 概述 今天主要分享一 ...