二十六、python学习之前端(九):JQuery数据交互

版权声明:浅弋、璃鱼的原创 https://blog.csdn.net/qq_35709559/article/details/82972800

一.juqery对象:

js中的对象,就是python中的字典:

1定义方法:

定义方法1:

var obj1 = {name:"张三", "age":18, "address":"三里屯"}

定义方法2:

var obj2 = new Object();
obj2.name = "李斯";
obj2.['age'] = 28;

2 获取值:

获取方法1:

var name = obj["name"];
var name2 = obj2.name;

1.3 应用:

以后开发使用比较多的是:数组里边套对象

二、json:

1.什么是json:

  json是 JavaScript Object Notation 的首字母缩写,单词的意思是javascript对象表示法,这里说的json指的是类似于javascript对象的一种数据格式对象,目前这种数据格式比较流行,逐渐替换掉了传统的xml数据格式。
  json数据对象类似于JavaScript中的对象,但是它的键对应的值里面是没有函数方法的,值可以是普通变量,不支持undefined,值还可以是数组或者json对象。
  与JavaScript对象写法不同的是,json对象的属性名称和字符串值需要用双引号引起来,用单引号或者不用引号会导致读取数据错误。

2.把json类型的字符串,转换成对象:

var str1 =  '{"name":"张三","age":18,"address":"三里屯"}';
var obj1 = JSON.parse(str1)

3.把对象转换成json类型的字符串

var obj2 = {name: "李四", 'age': 18, "address": "三里屯"};
var str2 = JSON.stringify(obj2)

三、ajax:

1.什么是ajax:

  ajax一个前后台配合的技术,它可以让javascript发送http请求,与后台通信,获取数据和信息。ajax技术的原理是实例化xmlhttp对象,使用此对象与后台通信。jquery将它封装成了一个函数$.ajax(),我们可以直接用这个函数来执行ajax请求。

  ajax需要在服务器环境下运行。

2.为什么有ajax:

刷新页面一部分(往往伴随着数据库), 就会有异步提交.(ajax)

3.ajax的语法使用:

$.ajax使用方法

常用参数:

  • url 请求地址
  • type 请求方式,默认是’GET’,常用的还有’POST’
  • dataType 设置返回的数据格式,常用的是’json’格式,也可以设置为’html’
  • data 设置发送给服务器的数据
  • success 设置请求成功后的回调函数
  • error 设置请求失败后的回调函数
  • async 设置是否异步,默认值是’true’,表示异步

语法:

以前的写法:

$.ajax({
    url: '',
    type: 'GET',
    dataType: 'json',
    contentType:'application/json',	# 这个很重要
    data:{}
    success:function(dat){},
    error:function(){}
});

新的写法(推荐):

$.ajax({
    url: '/change_data',
    type: 'GET',
    dataType: 'json',
    contentType:'application/json',
    data:{'code':300268}
})
.done(function(dat) {
    alert(dat.name);
})
.fail(function() {
    alert('服务器超时,请重试!');
});

$.ajax的简写方式(没有错误处理)

$.ajax按照请求方式可以简写成$.get或者$.post方式

$.get("/change_data", {'code':300268},
function(dat){
    alert(dat.name);
});

$.post("/change_data", {'code':300268},
function(dat){
    alert(dat.name);
});

4.json的跨域问题(重点了解一下):

4.1 什么是跨域问题:

由于浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一个与当前页面地址不同即为跨域。存在跨域的情况:

  • 网络协议不同,如http协议访问https协议。
  • 端口不同,如80端口访zhouchengfei问8080端口。
  • 域名不同,如 zhouchengfei.top 访问 baidu.com
  • 子域名不同,如 ss.zhouchengfei.top 访问 def.zhouchengfei.top。
  • 域名和域名对应ip,如www.a.com访问20.205.28.90。

4.2 如何解决跨域访问:

  • porxy代理: 通过nginx代理;
  • CORS 【Cross-Origin Resource Sharing】;
  • jsonp: 通过动态插入一个script标签;

ajax处理跨域访问使用"jsonp"属性

 // ajax异步提交。
    $.ajax({
        url: 'https://sug.so.360.cn/suggest',
        type: 'get',
        dataType: 'jsonp',
        contentType:'application/json',
        data: {'word': $(this).val()},
    })
    .done(function(dat){
        console.log(dat)
    })
    .fail(function(){
        alert('服务器错误!!!')
    })
})

猜你喜欢

转载自blog.csdn.net/qq_35709559/article/details/82972800