使用ajax上传文件时候403解决策略:(本篇基于django框架)
html代码:
<form>
{% csrf_token %}
...
</form>
js代码:
引入jquery和jquery.cookie两个文件
<script src="{% static 'js/jquery.js' %}"></script>
<script src="{% static 'js/jquery.cookie.js' %}"></script>
var file = $('#report-upload-pdf')[0].files[0];
var csrf = $('input[name=csrfmiddlewaretoken]').val();
var pdfFormData = new FormData();
pdfFormData.append('file', file);
pdfFormData.append('csrfmiddlewaretoken', csrf);
$.ajax({
url: '{% url "admin-upload-pdf" %}',
method: 'post',
data: pdfFormData,
processData: false, // 不处理数据( 必须有)
contentType: false, //不设置内容类型 ( 必须要)
header: {
'X-CSRFToken': $.cookie('csrftoken'),
},
success: function (r) {
alert('成功')
}
})
欢迎关注wx公众号:python web小栈,共同探讨学习