$.ajax报错500,DjangoAJAX的HTTP 500错误

我尝试在AJAX调用中使用Django,它给了我http500甚至多值dictkeyerror,即使没有什么问题?在

我发送了3个变量:sendmail,username,error

我可以使用请求.POST在3个变量上,得到以下输出:

sendmail=真

用户名=someUserName

错误=登录

但是,返回的网页带有http500

在视图.py以下内容:def loginUser(request):

username = ""

type = ""

logger = logging.getLogger('views.logger.login')

try:

username = request.POST['username'];

logger.info("User:" + username + " in Login Page")

except MultiValueDictKeyError:

logger.info("Cannot Identify User")

try:

type = request.POST['submit']

logger.info("User:" + username + " requests:" + type)

except MultiValueDictKeyError:

logger.info("Cannot Identify User's Request")

if(type=="Login"):

try:

username = request.POST['username']

password = request.POST['password']

logger.info("UserName:" + username + " is trying to login")

user = authenticate(username=username, password=password)

if user is not None:

if user.is_active:

login(request, user)

logger.info("User is active, and logged in")

return redirect('index.html')

else:

logger.info("User is not active, and will not be logged in")

return redirect('disabled.html')

else:

logger.info("User:" + username + " is not valid");

context = {'Status': "Please sign in", 'Error': "Invalid", 'username':username}

return render(request, 'webapp/login.html', context)

except MultiValueDictKeyError:

logger.info("The user have missing forms")

context = {'Status': "Please sign in", 'Error': "Null"}

return render(request, 'webapp/login.html', context)

except Exception as e:

context = {'Status': "Please sign in", 'Error': "Null"}

return render(request, 'webapp/register.html', context)

logger.error("Error occured in Registering user");

logger.error("Error:" + str(e.args))

elif(type == "Register"):

logger.info("Redirecting user to Register Page")

return redirect('/webapp/register.html')

else:

logger.info("Startup Login Page");

context = {'Status': "Please sign in", 'Error': "Null"}

return render(request, 'webapp/login.html', context)

def ajax_sendMail(request):

logger = logging.getLogger('views.logger.sendEmail')

sendEmail = request.POST['email']

username = request.POST['username']

error = request.POST['error']

logger.info("Sending email to admins, sendEmail:" + sendEmail + ", username:" + username + ", error:" + error)

if(sendEmail == "true"):

mail_admins("User:" + username + " failed to " + error, "The time of error is at:" + datetime.datetime.now())

return HttpResponse("Success in Sending Email")

在登录.html以下内容:

^{pr2}$

在网址.py以下内容:from django.conf.urls import patterns, include, url

from django.contrib import admin

from django.contrib.auth.views import logout

from WebApp import views

urlpatterns = patterns('',

url(r'^index', views.index, name='index'),

url(r'^login', views.loginUser, name='login'),

url(r'^logout', views.logoutUser, name='logout'),

url(r'^register', views.registerUser, name='register'),

url(r'^sendMail', views.ajax_sendMail, name='sendMail'),

)

在登录.js以下内容:var main = function()

{

if(errorMessage == "Invalid")

{

$('#myModal').modal("show");

}

else

{

$('#myModal').modal("hide");

};

$("#sendErrorEmail").click(function(event)

{

var csrftoken = getCookie('csrftoken');

event.preventDefault();

$.ajax(

{

type:"POST",

url:"sendMail/",

data:{

'email': "true",

'error': "login",

'username' : username,

'csrfmiddlewaretoken':csrftoken

}

});

$('#myModal').modal("hide");

return false;

});

};

//To get the csrf token

function getCookie(name)

{

var cookieValue = null;

if (document.cookie && document.cookie != '')

{

var cookies = document.cookie.split(';');

for (var i = 0; i < cookies.length; i++)

{

var cookie = jQuery.trim(cookies[i]);

if (cookie.substring(0, name.length + 1) == (name + '='))

{

cookieValue = decodeURIComponent(cookie.substring(name.length + 1));

break;

}

}

}

return cookieValue;

}

$(document).ready(main);

我成功地发送了AJAX POST调用视图.py我能够得到我的数据。以下是记录器详细信息:2014-09-04 16:04:20,901 [INFO] views.logger.login: User:adfafasdfa requests:Login

2014-09-04 16:04:20,901 [INFO] views.logger.login: UserName:adfafasdfa is trying to login

2014-09-04 16:04:21,124 [INFO] views.logger.login: User:adfafasdfa is not valid

2014-09-04 16:04:22,095 [INFO] views.logger.sendEmail: Sending email to admins, sendEmail:true, username:adfafasdfa, error:login

我能够得到sendmail、username和Error,但是它仍然调用http500 multivaluedictkeyrerror。在MultiValueDictKeyError at /webapp/sendMail/

"'email'"

Request Method: GET

Request URL: http://127.0.0.1:8000/webapp/sendMail/

Django Version: 1.6.5

Exception Type: MultiValueDictKeyError

Exception Value:

"'email'"

Exception Location: C:\Python27\lib\site-packages\django\utils\datastructures.py in __getitem__, line 301

Python Executable: C:\Python27\python.exe

Python Version: 2.7.6

有人知道为什么会这样吗?很奇怪。。。在

更奇怪的是chrome inspect element工具

Chrome Inspect Element工具的屏幕截图:

OLSl6.png

上面说这是一个帖子,但是,当你进去的时候:

pO6fq.png

它显示了一个得到

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值