我正在使用django服务器端表单来保存数据库中的详细信息。
<form id="form_save_file" enctype="multipart/form-data">
{% csrf_token %}
<label class="control-label col-md-4">File:</label>
<div class="col-md-8">
{{form.fa_file}}
</div>
<label class="control-label col-md-4">Name:</label>
<div class="col-md-8">
{{form.name}}
</div>
</form>
我使用ajax发布请求。
$("#form_save_file").submit(function(e) {
$.ajax({
type: "POST",
url: '/url/',
data: $("#form_save_file").serialize(),
contentType: false,
processData: false,
success: function(data){}
});
我在设置中包含了中间件类。派克
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'request.middleware.RequestMiddleware'
)
当我删除了ajax请求中的内容类型
和过程数据
时,请求。文件
是空的views.py和其他工作正常。
使用@csrf\u emption
装饰器在特定视图上禁用csrf,并使用随机数/字符串构建自定义安全性
contentType选项为false用于传递文件的多部分/表单数据表单。
如果将contentType选项设置为false,将强制jQuery不添加内容类型头,否则,它将丢失边界字符串。此外,当通过多部分/表单提交文件时,必须将processData标志设置为false,否则,jQuery将尝试将FormData转换为字符串,这将失败。
要尝试解决您的问题,请执行以下操作:
您正在使用jQuery的。serialize()方法,该方法以标准URL编码表示法创建文本字符串。
使用"contentType: false"时需要传递未编码的数据。
尝试使用“new FormData”而不是。序列化():
资料来源:https://stackoverflow.com/a/20863123/3345051
修订守则:
$("#form_save_file").submit(function(e) {
e.preventDefault();
var $this = $(this);
var postURL = '/url/';
var formData = new FormData(this);
$.ajax({
type: "POST",
url: postURL,
data: formData,
mimeType: "multipart/form-data",
contentType: false,
cache: false,
processData: false
})
.done(function(response) {
// Do something if POST is successful
})
.fail(function() {
// Do something if POST is unsuccessful
})
})
问题内容: 我尝试建立一个非常简单的网站,在该网站中可以将数据添加到sqlite3数据库中。我有两个文本输入的POST表单。 index.html: forms.py: views.py: 但是,当我单击“提交”按钮时,出现403错误: 我已经包含{% csrf_token %}在index.html中。但是,如果这是一个RequestContext问题,我真的不知道在哪里以及如何使用它。我希望所
但是这个配置的问题是我只能以用户Euclid的身份登录。但我想作为每一个可用的用户登录。 但是对于另一个配置,我会在日志中得到这样的消息,即找到了该用户,但已经发生了驱逐。 2017-04-20 09:36:16]ldap_driver.debug:ldap_search(dc=example,dc=com,(&(&(objectclass=person))(UID=einstein)),[arr
问题内容: 我正在关注Django 1.3 Web开发。对于登录,我收到以下错误 这是我的settings.py随附的APPS。这正是书上所说的样子。 这本书说,它应该包含django.contrib.auth.views.login ..并且我将其包含在 和我的registration / login.html …复制自本书的副本。它应该做。 问题答案: 你需要将模板标记添加为Django模板中
问题内容: 这段代码 给我这个错误 我对SSL几乎一无所知,但我曾尝试下载该站点的证书并使用该选项指向该文件,但是它没有用。我想念什么吗? 问题答案: 正如评论中已经指出的那样:从SSLLabs报告中可以看出,该网站的SSL实施不正确。该报告中有关您的问题的主要部分是: 该服务器的证书链不完整。等级上限为B。 这意味着服务器没有发送验证证书所需的完整证书链。这意味着您需要在验证时自行添加丢失的证书
问题内容: 我遇到了一个非常奇怪的错误,该错误与google.com的SSL和python有关(或更普遍地说,我认为具有多个证书链的域)。每当我尝试向其发送请求时,都会出现以下错误: 我经历了很多次尝试来使此工作正常进行,并且由于我不知道该怎么办而不得不将其发布到Stack Overflow。这是我尝试过的: 注意,该日期返回的时间比实时时间晚2分钟(可能会使我的证书无效)。我修复了这个问题,假设
在我的python脚本中,我尝试调用api,如下所示: 我得到以下例外情况: 我想打电话给我的服务人员https://example.com.它适用于http://连接,但不适用于https://。我应该为https连接做什么?另外,当我通过Rest客户端以https方式调用该服务时,它工作得非常好。是否有其他方式将该服务称为https连接?
问题内容: 禁止(403)CSRF验证失败。请求中止。即使使用{%csrf_token%}我正在尝试在django中进行登录,但出现此错误,我检查了CSRF文档,但对我来说没有任何用处。 这是HTML: 就像你在上面看到的那样,我使用了{%csrf_token%},并且在已安装的应用程序中有“ django.middleware.csrf.CsrfViewMiddleware”。 我的看法是: 我