ajax - ajax 和 Django 中 JSON 中的 parsererror 和 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
解决方案
对不起大家,
我找到了答案,
在 url.py 我改变了
re_path(r'^eForm',views.eticket{'template_name':'e_ticket_form.html'},name='eticket'),
至
re_path(r'^eForm$',views.eticket,{'template_name':'e_ticket_form.html'},name='eticket'),
在 '^eForm' 必须在执行 ajax 时添加 '$' 之后,它将转到其他视图。所以我没有得到正确的答案
谢谢大家回答我的问题:)
推荐阅读
- sql - SQL(SQL/Oracle)使用序列从选择语句中插入值
- classification - 在分类中使用线性判别分析和 k 最近邻时,哪个更好?
- node.js - 在具有不同 publicPath 的 webpack 中两次注入相同的资产
- fortran - 在 Fortran 不好的做法中声明虚拟参数的大小(元素数量)
- python-3.x - 使用子进程从标准输出读取数据时出现意外的额外反斜杠
- python - 从两个多维 numpy 数组复制到另一个具有不同形状的数组
- go - Golang 序列化 go-radix Tree 到文件?
- javascript - setTimeout 回调执行后清除超时
- python - 'VoiceClient' 对象不能用 discord API/youtube_dl 调用
- python - Python authlib flask - 如何处理刷新令牌?