天天看點

ajax送出不能擷取資料,django無法收到ajax的請求資料

問題描述

本想做一個表單驗證來熟悉一下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 admin

from django.urls import path,re_path

from app01 import views

urlpatterns = [

path('admin/', admin.site.urls),

path('host/',views.host),

re_path('business/',views.business),

path('ajax/',views.ajax),]

html代碼:(

部分)

{% csrf_token %}

主機名:

IP:

端口:

業務線

{% for i in v2 %}

{{i.b__caption}}

{% endfor %}

ajax送出

$(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)

}

}

})

})

})

你期待的結果是什麼?實際看到的錯誤資訊又是什麼?

需要整個django檔案測試的,希望留下郵箱,請各位大神幫個忙了!