Django:ajax请求url无法正常工作

时间:2014-05-03 14:27:23

标签: jquery ajax django

我正在使用Django 1.3并向具有以下url模式的视图发出ajax请求:

我当前发出请求的网址/add/

url(r'^university/teacher/signup/$', 'uninversity.views.signup', name='teacher-signup'),

将ajax请求设为

       $.ajax({
                type: "POST",
                url: "{% url teacher-signup %}",
         });                  

即将出现

/add/%7B%%20url%20'teacher-signup'%20%%7D

而不是

university/teacher/signup/

任何线索?

3 个答案:

答案 0 :(得分:1)

你的问题是围绕" {%url teacher-signup%}" 的双引号 这导致在渲染期间忽略它。你的Django模板中有脚本吗?

你实际上应该可以在它周围使用单引号,它应该像你期望的那样渲染

url: '{% url teacher-signup %}',

答案 1 :(得分:0)

您必须解码网址,以便正确表示空格和参数。使用decodeURI

 $.ajax({
        type: "POST",
        url: decodeURI('{% url teacher-signup %}'),
 }); 

示例:

decodeURI("https://developer.mozilla.org/ru/docs/JavaScript_%D1%88%D0%B5%D0%BB%D0%BB%D1%8B");
// "https://developer.mozilla.org/ru/docs/JavaScript_шеллы"

答案 2 :(得分:0)

这是我使用的ajax调用,我总是把这样的url,也许这可以帮到你。

            $.ajax({
                url: "/BusquedaCIE10",
                type: "POST",
                dataType: "json",
                data: {
                    grupname: idgrupo,
                    csrfmiddlewaretoken: '{{ csrf_token }}'
                },

url.py

      url(r'^BusquedaCIE10','expmedico.views.ciesearch'),

views.py

def ciesearch(request):
    if request.POST.has_key('idgrupo') and request.is_ajax():
        x = request.POST['idgrupo']
        y = cie_10.objects.filter(id=x)
        miembroinf = serializers.serialize('json', y)
        return HttpResponse(miembroinf, mimetype="application/json")
    else:
        return render_to_response('csb.html', context_instance=RequestContext(request))