首页 > 解决方案 > Ajax 在位置 0 的 JSON 中得到错误解析错误和 Unexpected token <?

问题描述

请查看下面的代码

AJAX 函数

<script>
$(document).ready(function() {
$("#id_module").on('change', function(){
  var mod1 = $(this).val();
  alert(mod1);
  $.ajax({
    url: 'submodule/'+ mod1,
    type:'GET',
    dataType:'json',
    success: function(response){
        alert(JSON.stringify(response));
        submod=response['submod'];
        alert(submod);
        $('#submodule').empty();
        $("#submodule").prepend($('<option>',
            {
                value: '',
                text: '-- Select Sub Module Type --'
            }));
        $.each(submod, function(ind){
        $("#submodule").append($('<option>',
            {
                value: submod[ind]['sub_module'],
                text: submod[ind]['sub_module']
            }));
            });
        $('#submodule').selectpicker("refresh");
    }
  });
});
});
</script>

我的 Django——网址:

from django.urls import re_path
from django.conf import settings
from django.conf.urls.static import static
from E_Ticketing import views

urlpatterns = [re_path(r'^eForm/report$',views.reports{'template_name':'reports.html'},name='report'),re_path(r'^eForm/resolution$',views.resolutionForm{'template_name':'Resolution_Form.html'},name='resolution'),
re_path(r'^eForm/assign$',views.assignForm,{'template_name':'assign_form.html'},name='assign'),
re_path(r'^eForm',views.eticket, {'template_name':'e_ticket_form.html'},name='eticket'),
re_path(r'^eForm/submodule/(?P<n_moduleid>\d+)$',views.submodule,name='submodule'),
re_path(r'^eForm/fillemp/(?P<n_empid>\d+)$',views.fillemp,name='fillemp'),
 ]
 if settings.DEBUG:
  urlpatterns+=static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

我的 Django -- 视图:

def submodule(request,n_moduleid):
try:
    if request.method=='GET':
        submod=[]
        submod=TblTxEticketdetails.objects.using('ETicketing').values('sub_module').filter(Q(module_id=n_moduleid)).distinct()
    else:
        messages.error(request, 'Error Occurred!!!')
    data = {'submod': list(submod)}
    return JsonResponse(data, safe=False)
except Exception as e:
    messages.error(request, "Error Occured!!!")

我已经浏览了所有代码,但找不到我的代码错误的地方。运行时,会出现警告框,但不会进入 ajax 功能。我需要一点帮助!

我以这种方式收到错误

text status: parsererror
eForm:1676 error: SyntaxError:Unexpected token < in JSON at position 0

标签: ajaxdjangodjango-views

解决方案


对不起大家,

我找到了答案,

在 url.py 我改变了 re_path(r'^eForm',views.ticket{'template_name':'e_ticket_form.html'},name='eticket'),

to re_path(r'^eForm$',views.ticket,{'template_name':'e_ticket_form.html'},name='eticket'),

在 '^eForm' 必须在执行 ajax 时添加 '$' 之后,它将转到其他视图。所以我没有得到正确的答案

谢谢大家回答我的问题:)


推荐阅读