【问题标题】:Django -Ajax Request Error : Not FoundDjango -Ajax 请求错误:未找到
【发布时间】:2013-03-19 22:55:36
【问题描述】:

我正在尝试创建一个 ajax 函数,该函数在调用时会将信息返回到新创建的模式,您能帮我找出问题所在吗?每当我尝试访问问题,下面我添加了我的终端和所有相关文件的屏幕截图。

views.py

@require_POST()
def form_create(request, model):
  if request.method == "POST": 
    return HttpResponse("the model requested is")

urls.py

url(r'^forms/(?P<model>[\W-]+)/$','.views.form_create'),

html 模板中的 Ajax 调用

$.ajax({
     url: "/forms/"+model+"/",
     type: "POST",
     cache: false,
     success: 
         function(result){
             $("#myModalLabel").html(result);
             $("#companyModal").modal("show");  
             },
     error: 
         function(xhr){
             alert("Error: " + xhr.statusText);
             return false;
             }
     });

【问题讨论】:

  • 您是否设置了 DEBUG=True?
  • 当然我设置为 True
  • 因为你访问post,所以在ajax中定义csrf

标签: ajax django jquery django-views


【解决方案1】:
 $.ajax({
     url: "/forms/"+model+"/",
     type: "POST",
     cache: false,
     data: { 'csrfmiddlewaretoken': '{{csrf_token}}' }, 
     success: 
         function(result){
             $("#myModalLabel").html(result);
             $("#companyModal").modal("show");  
             },
     error: 
         function(xhr){
             alert("Error: " + xhr.statusText);
             //alert(xhr.responseText) --> to get the full details of error
             return false;
             }
     });

【讨论】:

    【解决方案2】:

    \W(大写)匹配任何 -字母数字字符。您可能应该使用匹配任何字母数字字符的\w(小写)。

    urls.py

    url(r'^forms/(?P<model>[\w-]+)/$','.views.form_create'),
    

    【讨论】:

    • 现在我在使用小写 w 后看到内部服务器错误
    • 这可能意味着它现在已经匹配了 url,问题出在其他地方。我不确定'.views.form_create' 表示法,这可能是罪魁祸首,否则在您的视图函数中。答案实际上超出了您原始问题的范围。您可以要求一个新的,提供有关收到的内部服务器错误的详细信息,以便更容易提供帮助!
    猜你喜欢
    • 2015-07-14
    • 2023-01-05
    • 2010-11-05
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多