1. 程式人生 > >ajax請求中 兩種csrftoken的發送方法

ajax請求中 兩種csrftoken的發送方法

NPU print req 空字符 ajax請求 提交 query style ces

通過ajax的方式發送兩個數據進行加法運算

html頁面

<body>
<h3>index頁面 </h3>

<input type="text" name="cal_1">+
<input type="text" name="cal_2">=
<input type="text" name="cal_3">
<button id="b2">計算</button>

<script src="/static/js/jquery.js"></script>
{#<script src="/static/js/ajax_setup.js"></script>#}
<script> $("#b2").click(function () { $.ajax({ url: "/cal2/",//提交的地址 type: "post", //csrftoke 可以通過headers獲取, 也可以通過data獲取,選擇一種發送方式 {#headers:{"X-csrftoken":$("[name=‘csrfmiddlewaretoken‘]").val()},#} {#headers:{‘X-csrftoken‘:csrftoken,},#}
//(獲取的是cookie裏的token的值,跟上一行效果一樣一樣,但是要引src="/static/js/ajax_setup.js") data: { i1: $("[name=‘cal_1‘]").val(),//獲取標簽裏的值 i2: $("[name=‘cal_2‘]").val(), "csrfmiddlewaretoken": $("[name=‘carfmiddlewaretoken‘]").val(), {#
"csrfmiddlewaretoken":csrftoken,#} //(獲取的是cookie裏的token的值,跟上一行效果一樣一樣,但是要引src="/static/js/ajax_setup.js") }, success: function (response) { $("[name=‘cal_3‘]").val(response) // 給cal_3賦值 }, error: function (response) { }, }) }); </script> </body>

csrf的發送可以在headers裏面發送,也可以在data裏面發送. 不管在哪發送,都有兩種發送形式.

第一種方式就是直接在headers 或者 data 獲取值,然後發送

    $("#b2").click(function () {
        $.ajax({
            url: "/cal2/",//提交的地址
            type: "post",
            //csrftoke 可以通過headers獲取, 也可以通過data獲取,選擇一種發送方式
            headers:{"X-csrftoken":$("[name=‘csrfmiddlewaretoken‘]").val()},
 data: {
                i1: $("[name=‘cal_1‘]").val(),//獲取標簽裏的值
                i2: $("[name=‘cal_2‘]").val(),

                "csrfmiddlewaretoken": $("[name=‘carfmiddlewaretoken‘]").val(),

第二種方式就是引入ajax_setup文件發送. 也是可以通過headers 或者 data

<script src="/static/js/ajax_setup.js"></script>

<script>
    $("#b2").click(function () {
        $.ajax({
            url: "/cal2/",//提交的地址
            type: "post",
            //csrftoke 可以通過headers獲取, 也可以通過data獲取,選擇一種發送方式
            {#headers:{"X-csrftoken":$("[name=‘csrfmiddlewaretoken‘]").val()},#}

            headers:{‘X-csrftoken‘:csrftoken,},
            //(獲取的是cookie裏的token的值,跟上一行效果一樣一樣,但是要引src="/static/js/ajax_setup.js")

<script src="/static/js/ajax_setup.js"></script>

data: { i1: $(
"[name=‘cal_1‘]").val(),//獲取標簽裏的值 i2: $("[name=‘cal_2‘]").val(), {#"csrfmiddlewaretoken": $("[name=‘carfmiddlewaretoken‘]").val(),#} "csrfmiddlewaretoken":csrftoken, //(獲取的是cookie裏的token的值,跟上一行效果一樣一樣,但是要引src="/static/js/ajax_setup.js") },

在veiws都一樣

#發ajax計算
def cal2(request):
    i1=request.POST.get("i1","") # 如果有值就獲取,如果沒有值就默認獲取空字符串  這裏的i1 對應的是前端data 裏面 i1:$("[name=‘cal_1‘]").val()的i1
    i2=request.POST.get("i2","")
    print("i1:",i1)
    print("i2:",i2)
    if i1 and i2:
        i3=int(i1)+int(i2)
    else:
        i3=""
    return HttpResponse(i3)

ajax請求中 兩種csrftoken的發送方法