天天看点

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文件测试的,希望留下邮箱,请各位大神帮个忙了!