gpt4 book ai didi

javascript - ajax 将多部分表单数据上传为 json 对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:00:57 25 4
gpt4 key购买 nike

这里有带图片的表单数据。我需要通过 json 对象发送整个图像数据。下面我提到了代码。在下面的方法下,我可以获得除 Logo 之外的全部数据。我需要一次发送全部数据

 <form class="form-horizontal" id="companyData">
<fieldset>

<legend>Add Company</legend>

<div class="control-group">
<label class="control-label" for="code">Code</label>
<div class="controls">
<input id="code" name="code" type="text" placeholder="code" class="input-large">
</div>
</div>

<div class="control-group">
<label class="control-label" for="name">Name</label>
<div class="controls">
<input id="name" name="name" type="text" placeholder="Name" class="input-xlarge">
</div>
</div>

<div class="control-group">
<label class="control-label" for="logo">Logo</label>
<div class="controls">
<input id="logo" name="logo" class="input-file" type="file">
</div>
</div>

<div class="control-group">
<label class="control-label" for="username">Admin Username</label>
<div class="controls">
<input id="username" name="username" type="text" placeholder="" class="input-xlarge">
</div>
</div>

<div class="control-group">
<label class="control-label" for="AdminPassword">Admin Password</label>
<div class="controls">
<input id="AdminPassword" name="AdminPassword" type="text" placeholder="" class="input-xlarge">
</div>
</div>

<div class="control-group">
<label class="control-label" for="submit"></label>
<div class="controls">
<button id="submit" name="submit" class="btn btn-primary">Save</button>
</div>
</div>

</fieldset>
</form>

这是我的脚本

<script type="text/javascript">
$(document).ready(function () {
$("#submit").click(function (e) {
e.preventDefault();
var formData = JSON.parse(JSON.stringify(jQuery('#companyData').serializeArray()));
$.ajax({
type: "POST",
url: "",
data: formData,
cache: false,
success: function (data) {
}
});

});
});
</script>

最佳答案

图像在使用 json.stringify 时出现问题。发送 formdata 对象并将所有项目附加到其中。试试这个

    var imgFile = document.getElementById('logo');
var imgfileList = imgFile.files;

var formdata = new FormData();
if (imgfileList && imgfileList != null && imgfileList.length > 0) {

formdata.append(imgfileList[0].name, imgfileList[0]); or add the name
formdata.append('logofilename', imgfileList[0]);
}
var other_data = $('#companyData :input').serializeArray();
$.each(other_data, function (key, input) {
formdata.append(input.name, input.value);
});


$.ajax({
url: UrlRoot.SaveTeamInfo,
data: formdata,
processData: false,
contentType: false,
type: 'POST',
success: function () {

}
});

请记住将上面的 ajax 调用中指定的流程数据和内容类型添加为 false。

尝试这是未定义的表单数据'

if(typeof FormData == "undefined"){
var data = [];
data.push(imgfileList[0].name, imgfileList[0]);
}
else{
var data = new FormData();
data.append('data', JSON.stringify(inputData));
}

对数组使用 .push 而不是 .append

关于javascript - ajax 将多部分表单数据上传为 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25480776/

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