javascript - 在 jquery ajax POST Api 调用中发送文件
问题描述
使用 Jquery,当我尝试通过发送任何文件来调用外部 API 时。我面临 415 Unsupported Media Type 错误。我正在尝试使用 FormData() 和 beforeSend() 函数中的标题数据发送我的文档。建议我发送数据的正确方式。
<div id="folder-browser">
<input type="file" id="file-select" name="photos" />
<button id="myButton" value="click me">click me</button>
</div>
$("#myButton").click(function() {
var myData = new FormData();
var myFile = document.getElementById("file-select");
myData.append(myFile.files[0].name, myFile.files[0]);
$.ajax({
url: 'http://10.96.45.179/RightFax/API/attachments',
data: myData,
processData: false,
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', 'Basic c3lzYWRtaW46cGFzc3dvcmQtMQ==');
},
type: 'POST',
success: function(result) {
console.log(result);
return result;
}
});
});
查询 2:如果我的文档存在于 URL 中。请告诉我如何将 URL 作为文件源传递。例如:
filepath = 'http://seekvectorlogo.com/wp-content/uploads/2018/02/opentext-vector-logo-small.png';
我需要将此文件源传递给我的外部 API。
解决方案
在 FormData 对象中上传二进制数据时,您需要设置contentType: false
:
$.ajax({
url: 'http://10.96.45.179/RightFax/API/attachments',
data: myData,
processData: false,
contentType: false,
// your other settings...
});
推荐阅读
- r - R光栅乘法 - 为什么光栅大小会大大增加
- javascript - AuthGuard 可以通过 http 请求角色激活
- regex - Bash - 正则表达式提取空运单号码
- django - 如何在 Django 中使用通用 ForeignKey 定义模式
- laravel - 在生产中使用 Laravel API 请求失败
- postgresql - 我们如何在不使用 `psql` 的命令或选项的情况下显示集群中的所有数据库?
- twilio - 使用 Twilio 功能转发到带有分机的电话号码
- vba - 在 VBA(Excel 宏)中授予注册表权限
- jquery - 使用 Jquery 更改键盘导航顺序
- python - 如何在急切执行中暂停和恢复渐变磁带?