"

乐虎体育官网拥有全球最顶尖的原生APP,每天为您提供千场精彩体育赛事,乐虎体育官网更有真人、彩票、电子老虎机、真人电子竞技游戏等多种娱乐方式选择,乐虎体育官网让您尽享娱乐、赛事投注等,且无后顾之忧!

<cite id="jnxbr"></cite>
<cite id="jnxbr"></cite>
<cite id="jnxbr"><video id="jnxbr"></video></cite><cite id="jnxbr"></cite>
<cite id="jnxbr"></cite>
<var id="jnxbr"><strike id="jnxbr"></strike></var>
<cite id="jnxbr"><span id="jnxbr"><menuitem id="jnxbr"></menuitem></span></cite>
<cite id="jnxbr"></cite>
<cite id="jnxbr"><span id="jnxbr"></span></cite>
<cite id="jnxbr"></cite>
<cite id="jnxbr"></cite>
<cite id="jnxbr"></cite>
<var id="jnxbr"></var>
<cite id="jnxbr"></cite>
<cite id="jnxbr"></cite>
<cite id="jnxbr"></cite>
<var id="jnxbr"><strike id="jnxbr"><thead id="jnxbr"></thead></strike></var>
<cite id="jnxbr"><video id="jnxbr"><thead id="jnxbr"></thead></video></cite>
"

Django分离JS代码,处理AJax错误请求

小编:啊南 16阅读 2020.12.21

在写Django时候,遇到个错误,这里进行下记录。

都知道Django或者Flask中通过下面这种方式

{%blockjs%}{%endblock%}

能够直接将js代码进行分离,使得单个的Template代码能够大大的减少,但是在某个模板中,如果需要大量的Ajax请求时,这里的block同样会变得很臃肿。

最近遇到的问题:

并且最近在进行Ajax的POST请求时候,遇到Illegal invocation这个错误。查了下,大概就是传递了个对象导致的,但是从自己代码上看,好像没有,因此找了下,发现在进行AJax提交时,默认会将数据转换成对象,并且会进行序列化处理,特别是在使用AJax进行文件上传时候。

Django中,开启CSRF的防护时,在进行POST提交时必须附带csrf_token,但是将JS分离后,独立的JS文件中是无法获取到

{{ csrf_token }}的,因此我只能采用传参的方式来解决。

使用block分离js后,还有很多相同功能的操作,导致代码功能极其难看,比如批量删除,因此对相同功能的代码进行了提取。

下面以复选框批量删除操作来说明上面的问题

多个复选框

复用代码,分离请求

分离JS代码,抽离功能

这里重点在Ajax请求时的两个参数:

processData: false,

contentType: false,

processData是让接收的数据别序列化,contentType主要是不处理Content-Type请求头。对于这里的Demo,两个参数都不能少。但是一般出现Illegal invocation错误时候,设置第一个即可解决。

关联标签:
乐虎体育官网