Python与AJAX

Ajax:

jquery提供的ajax功能:

$.ajax({
    url:'/host',
    type:'POST',
    data:{'k1':123, 'k2':'root'},
    success: function(data){
        
    }
})

success的匿名函数function要等到服务端返回来的时候,才会执行。
function的data是服务端返回的数据。

jquery绑定事件:

$('#ajax_submit').click(function(){
    $.ajax({
        url:'/test_ajax',
        type:'GET',
        data:{'username':'root', 'passoword':'123456'}
        success: function(data){

        }
    })
})

在jquery中,还有:
1)$.get:就是调用上面的jquery提供的ajax功能,只是里面的type为get.还是推荐上面的方式。
使用方法:

$.get(url='xx', data={}, succusse...)

2)$.post:就是调用上面的jquery提供的ajax功能,只是里面的type为post.
3)$.getJson:


Ajax请求返回的是:HttpResponse(json.dumps(dict))
返回的是一个json字符串(可以反序列化为字典)。

在template里面:

success:function(data){
    var obj = JSON.parse(data);   # 将json字符串转为对象
}

在前端string与对象的相互转换:

li = [1,2,3,4]
str = JSON.stringify(li)  # 转为字符串
JSON.parse(str)  # 转为对象

经验建议:
永远让服务器端返回一个字典
return HttpResponse(json.dumps(dict))


经验:

  1. 使用ajax做退出登录/页面的跳转:(https://stackoverflow.com/questions/46191656/the-render-do-not-render-to-the-template/46191957#46191957

2.示例:

$.ajax({
    type:'post',
    url:'/app_api/buy_server/',
    //contentType:'application/json',  # 实验的时候,这个加上传不过去数据,我就注释了
    data:JSON.stringify({'params':buy_data}),  # 如果加了JSON.stringify(),那么在views.py中需要,json.loads(request.body).get("server_id")去获得。 注意:如果是字典包的字典或者其他东西,那么需要JSON.stringify()才好。见下面的sof链接。
    dataType:'json',
    success:success_func    # 注意:这里没有逗号,有的话会报错。
})

sof链接: https://stackoverflow.com/questions/46488148/how-can-i-get-my-params-in-querydict

3.ajax与<a>标签

比如<a>标签的href可以GET请求。
如果想要在GET请求之前做些计算,可以在Js中写一个js方法,计算,跳转:

function redirect_func(){
     var page = page_c + 1;
     self.location = "/app01/index2?page="+ page +"/";
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • AJAX 原生js操作ajax 1.创建XMLHttpRequest对象 var xhr = new XMLHtt...
    碧玉含香阅读 3,256评论 0 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,845评论 18 139
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,199评论 0 1
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,367评论 0 2
  • 大家好,我是IT修真院深圳分院第3期的学员,一枚正直纯洁善良的前端程序员,今天给大家分享一下,修真院官网前端工程师...
    大大头大阅读 7,802评论 1 72