Python入门自学进阶-Web框架——8、认识Ajax,与Django交互,基于jQuery

本文介绍了基于jQuery的Ajax实现,包括.get()和.post()方法,详细阐述了数据传递、回调函数以及JSONP用于跨域请求的原理。通过实例展示了如何在Django中处理Ajax请求,解释了CORB(跨域读取阻塞)的安全机制及其影响。
摘要由CSDN通过智能技术生成

基于jQuery的Ajax实现:

jQquery中创建XMLHttpRequest对象就没有兼容性问题了,而且不需要前面的四个步骤,直接使用 . a j a x ( ) , 通 过 设 置 相 关 的 参 数 , 如 提 交 的 方 法 , u r l , 数 据 等 , 一 次 性 完 成 所 有 步 骤 及 功 能 。 .ajax(),通过设置相关的参数,如提交的方法,url,数据等,一次性完成所有步骤及功能。 .ajax()url.ajax()是jQuery实现ajax的最底层方法。

$.ajax(
url:
type:“POST” or “GET”

)

高级一些的封装:

$.get() :直接就体现了GET提交
$.post() :直接接体现了POST提交

上面是在 . a j a x ( ) 基 础 上 的 更 高 级 封 装 , 上 述 的 方 法 至 少 不 需 要 设 置 提 交 方 法 参 数 了 。 < 1 > .ajax()基础上的更高级封装,上述的方法至少不需要设置提交方法参数了。 <1> .ajax()<1>.get(url, [data], [callback], [datatype])
<2>$.post(url, [data], [callback], [datatype]) //datatype: text|html|json|script,数据的类型,要求后台返回的数据的类型。

不提交数据时两种方法的请求头:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<button name="btn1" onclick="func1();">ajax提交</button>
<script src="/static/js/jquery-3.6.0.js"></script>
<script>
    function func1() {
        test()
    }
    function test() {
        $.get("/app01/jqajaxtest/")
        // $.post("/app01/jqajaxtest/")
    }
</script>
</body>
</html>

def jqueryajax(req):
    return render(req,"jqueryajax.html")

def jqajaxtest(req):
    print("req.GET:",req.GET)
    return HttpResponse("ok111")

由上面两个结果,只是请求方法不同。

传递数据:

get修改参数:
1) $.get(“/app01/jqajaxtest/a=bbq&b=10”) $.get()的第一种传递数据方式,直接拼接网址后

后台打印:

2) $.get(“/app01/jqajaxtest/”,{name:‘bbq’,a:100}) $.get()的第二种传递数据方式,参数第二个位置。

结果与第一种相同,ajax将参数的字典键值对给拼接到了请求网址的后面。

post修改参数:

1)$.post(“/app01/jqajaxtest/”,{aa:‘小老虎’,bb:23}) POST方法传递数据,数据在第二个参数位置

2)$.post(“/app01/jqajaxtest/”,{aa:‘小花猫’,bb:44},function (data) {
alert(data); }),增加第三个参数,回调函数

回调函数就是POST方法执行完毕后,再调用执行这个函数,函数的参数data接收POST方法返回的数据,就是后台jqajaxtest(req)返回的数据,即ok111。

还有第四个参数,是数据类型,是告诉后台返回给前端的数据类型,如果不匹配,则回调函数不执行。

关于回调函数,其参数都有哪些呢?可以使用arguments参数来查看:
$.post(“/app01/jqajaxtest/”,{aa:‘小花猫’,bb:44},function (data) { console.log(arguments); })

显示参数公有3个,分别是ok111,success和{…},其中上面写的data对应第一个参数,第二个参数是状态信息,两个值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值