gpt4 book ai didi

javascript - AJAX Post 不发送表单数据

转载 作者:行者123 更新时间:2023-12-02 18:13:11 24 4
gpt4 key购买 nike

我下面有以下AJAX POST,出于某种原因,查看我的日志记录(服务器端),它发送的请求是空白{},而不是发送JSON数据。我已经用尽了所有可能的服务器端问题,这是脚本不发送数据的客户端问题。为什么?

bootstrap-wizard.js 在这里找到 -> GitHub

我的页面代码覆盖脚本提交:

<script src="{{ STATIC_URL }}js/bootstrap-wizard.js"></script>
<script type="text/javascript">
$(function() {

var options = {width:1000};
var wizard = $("#some-wizard").wizard(options);

$("#open-wizard").click(function() {
wizard.show();
});


wizard.on("submit", function(wizard) {

$.ajax({
url: '/api/v1/rewards/campaigns/',
type: 'POST',
contentType: 'application/json; charset=UTF-8',
data: $('#wizard').serialize(),
beforeSend: function (request) {

request.setRequestHeader("X-CSRFToken", $('input[name="csrfmiddlewaretoken"]').val());
},

success: function(data, textStatus) {
wizard.submitSuccess(); // displays the success card
wizard.hideButtons(); // hides the next and back buttons
wizard.updateProgressBar(0); // sets the progress meter to 0

console.log('success');

},
error: function(errorThrown){
// data = JSON.parse(errorThrown.responseText);

wizard.submitError(); // display the error card
wizard.hideButtons(); // hides the next and back buttons


console.log(errorThrown);
}
});



});



});



</script>

这是我的表格:

<form action="" method="post" class="form-horizontal" id="wizard" enctype="application/json" >
{% csrf_token %}

<div class="wizard" id="some-wizard">
<h1>{% trans "Setup Wizard" %}</h1>


<div class="wizard-card" data-cardname="card1">
<h3>{% trans "General" %}</h3>

etc, etc <=== all my form fields here

</div>

最佳答案

serialize()返回键/值格式的 URL 编码数据 (x-www-form-urlencoded),而不是 JSON。如果您的服务器端需要 JSON,那么您需要更改数据参数:

$.ajax({
...
data : JSON.stringify({ input_a : 'value a', input_b : 'value b' }),
...
});

参见this question了解如何自动将表单转换为 JSON。

关于javascript - AJAX Post 不发送表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19538940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com