亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

django無法收到ajax的請求數據

django無法收到ajax的請求數據

慕尼黑8549860 2019-02-18 15:43:36
問題描述 本想做一個表單驗證來熟悉一下ajax的功能,但是跟著教程敲一樣的代碼,自己的django卻沒法接收到頁面ajax發送的數據,接收到的全是none,一步步調試過,也發現不了問題,后來自己另起一個app寫了一個表單驗證,django卻能收到ajax的數據并返回data,不知道原先的代碼出什么問題了,csrf也注釋掉了,還是收不到ajax的數據。 問題出現的環境背景及自己嘗試過哪些方法 已經試過加上{% csrf_token %} 了,沒用,注釋掉了setting.py里的csrf攔截了。另外,把自己的代碼和教程做了比對,是一樣的,但是教程用的是django1.8,自己用的是2.0,不知道是不是版本問題?把自己的代碼替換到教程里面的源碼里也不行 相關代碼 // 請把代碼文本粘貼到下方(請勿用圖片代替代碼)views文件:def ajax(request): ret = {'status':True,'error':None,'data':None} try: h = request.POST.get('hostname') i = request.POST.get('IP') p = request.POST.get('port') c = request.POST.get('agent') print(type(h)) if h and len(h) > 5: models.Host.objects.create(hostname = h,ip = i, port = p,b_id = c) else: ret['status'] = False ret['error'] = '太短了' except Exception as e: ret['status'] = False ret['error'] = '請求錯誤' return HttpResponse(json.dumps(ret)) urls.py文件: from django.contrib import adminfrom django.urls import path,re_pathfrom app01 import views urlpatterns = [ path('admin/', admin.site.urls), path('host/',views.host), re_path('business/',views.business), path('ajax/',views.ajax),] html代碼:(<body>部分)<form id="add_form" action="/host/" method="POST"> {% csrf_token %} 主機名:<input type="text" name="hostname" id="h1"><span id="error_msg"></span><br> IP:<input type="text" name="IP" id="i1"><br> 端口:<input type="text" name="port" id="p1"><br> <select name="agent" id="s1">業務線 {% for i in v2 %} <option value="{{i.b_id}}">{{i.b__caption}}</option> {% endfor %} </select> <input type="submit" value="提交" > <input type="button" value="取消" > <a id="a1">ajax提交</a> </form> <script src="/static/jquery-3.3.1.js"></script> <script> $(function(){ $('#a1').click(function(){ $.ajax({ url:"/ajax/", type:'PSOT', data:$('#add_form').serialize(), success:function(data){ var obj = JSON.parse(data); if(obj.status){ location.reload() }else{ $('#error_msg').text(obj.error) } } }) }) }) </script> 你期待的結果是什么?實際看到的錯誤信息又是什么? 需要整個django文件測試的,希望留下郵箱,請各位大神幫個忙了!
查看完整描述

4 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

POST寫錯了??

<script>
    $(function(){
        $('#a1').click(function(){
            $.ajax({
                url:"/ajax/",
                type:'PSOT',     ←這里
                data:$('#add_form').serialize(),
                success:function(data){
                var obj = JSON.parse(data);
                if(obj.status){
                    location.reload()
                }else{
                    $('#error_msg').text(obj.error)
                }
                }
            })
        })
    })
</script>
查看完整回答
反對 回復 2019-03-01
?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

@csrf_exempt
在你view方法中加個這個,取消驗證

查看完整回答
反對 回復 2019-03-01
  • 4 回答
  • 0 關注
  • 1130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號