javascript - 我想将文件发送到 api url 并获得响应而不使用 ajax 重定向到它
问题描述
下面的代码是带有动作 api 链接的表单,这就是我的 ajax 请求
$('#form1').submit(function(e) {
$.ajax({
type: "POST",
url: "http://www.example.com/uploader",
data: formdata,
success: function(data) {
alert(data);
}
})
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form action="http://www.example.com/uploader" id="myForm" method="post" name="myForm">
NDA DOC: <input type="file" name="file1">
<input type="submit" id="submit">
</form>
当我向该 api 发送文件时,它会响应数据
解决方案
您需要在表单标签中添加 enctype 并使用 preventDefault 来防止页面刷新。
您需要序列化数据并发送数据。
在success
您需要处理响应的区域上。
HTML
<form action="http://www.example.com/uploader" id="form1" method="post" name="myForm" enctype="multipart/form-data">
NDA DOC: <input type="file" name="file1">
<input type="submit" id="submit">
</form>
JS
$('#form1').submit(function(e){
e.preventDefault();
let data = $( this ).serialize()
$.ajax({
type: "POST",
url: "http://www.example.com/uploader",
data: data,
success: function(response){
// success action here
},
error: function(response) {
// error action here
}
});
});
推荐阅读
- javascript - CSS + jQuery:在容器内缩放、居中和旋转图像
- excel - 寻找宏以在打开的工作簿的特定工作表中打开 .csv 文件
- java - 从终端执行的命令,使用 ProcessBuilder 从 Java 失败
- angular - ChartJS 折线图 - Angular 6 中时间序列无序连接的点
- css - 无法在 Angular 4 中添加 Sass
- ionic-framework - Ionic v3 One Signal 通知 - 如何打开/关闭通知
- javascript - 使用画布在父矩形上绘制随机矩形,就像在图像中一样
- angular - 我无法更新/创建 package-lock.json
- java - 如何知道从另一个框架中选择了哪一行?
- c++ - SSL_get_ex_new_index、SSL_CTX_get_ex_data、SSL_CTX_set_ex_data 返回错误值