我目前正在尝试制作一个ajax POST请求,以便将一个推荐简单表单发送到Django视图。问题是此请求返回GET而不是POST。
这是我的ajax:
<script>
$(document).ready(function(){
$("form.testimonial-form").submit(function(e){
e.preventDefault();
var dataString = $(this).serialize();
$.ajax({
type: "POST",
url: "/testimonials",
data: dataString,
success: function(_data) {
if (_data[0]){
$('.modal-text').css({display: "none"});
}
else{
$('.unsuccess').css({display: "block"});
}
}
});
});
});
</script>
知道我能做错什么吗?
答案 0 :(得分:0)
将type
替换为method
method: 'post',
您也可能需要发送headers
:
headers: {
'X-CSRFToken': getCSRFToken()
},
其中getCSRFToken
是:
function getCSRFToken() {
return $('input[name="csrfmiddlewaretoken"]').val();
}
答案 1 :(得分:0)
我不确定为什么会发生这种情况,但我会以不同的方式编写函数。由于ajax();
的默认type
是"GET"
,我怀疑某处将其设置为默认值。
首先设置提交按钮的type="button"
(其ID为"submit_button_id"
),因此如果您点击它,则不会提交。或将按钮放在<form>
然后尝试此代码
<script>
$(function(){ // same as "$(document).ready(function()"..
$("#submit_button_id").on('click',function(){
var dataString = $('form.testimonial-form').serialize();
$.ajax({
type: "POST",
url: "/testimonials",
data: dataString,
success: function(_data) {
if (_data[0]){
$('.modal-text').css({display: "none"});
}
else{
$('.unsuccess').css({display: "block"});
}
}
});
});
});
</script>