[英]JSON post gets no response from django view
所以我嘗試了一個簡單的JSON帖子。 但是我對Django的看法完全沒有回應。 JavaScript的:
$(function(){
var arr = { 'file': "print \"It works!\"", 'fileName' : "JSONtest", 'fileExt':".py" };
$.ajaxSetup({
beforeSend: function(xhr, settings) {
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]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
// Only send the token to relative URLs i.e. locally.
xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
}
}
});
$.ajax({
url: '/au',
type: 'POST',
data: JSON.stringify(arr),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(data) {
alert(data['link']);
}
});
});
view.py:
from django.shortcuts import render_to_response
from django.http import HttpResponse
from django.template import RequestContext, loader
from django.core.files.base import ContentFile
from django.views.decorators.csrf import ensure_csrf_cookie
from quickpad.models import FileLink
from mimetypes import types_map
from random import randint
def upload(request):
print 'hi'
genId = ''
try:
data=json.loads(request.body)
file=data['file']
name=data['fileName']
ext=data['fileExt']
newFile = FileLink(fileName=name,fileExt=ext)
newFile.file.save(name,ContentFile(file))
while (True):
genId = ''.join([alphaNum[randint(0,61)] for i in xrange(8)])
if len(FileLink.objects.filter(fileId=genId)) == 0: break
print genId
newFile.fileId = genId
newFile.save()
except:
print 'nope'
response = HttpResponse()
csrf(response)
response['link'] = genId
return response
打印“ hi”語句不會顯示,也不會創建任何新對象。 你能幫忙的話,我會很高興。 謝謝!
很抱歉造成延遲,問題是我的url.py中的順序由於某種原因默認r'^ $'與另一個url混淆了。 經過2個小時的調試,我終於捕獲到該錯誤(難以調試,因為沒有顯示錯誤,也沒有任何調試文本)。 抱歉,這是我的第一個Django應用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.