使用Jquery,当我尝试通过发送任何文件来调用外部API时。我遇到415不支持的媒体类型错误。我正在尝试使用beforeSend()函数中的FormData()和标头数据发送文档。向我建议正确的数据发送方式。
<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。
答案 0 :(得分:0)
在FormData对象中上传二进制数据时,您需要设置contentType: false
:
$.ajax({
url: 'http://10.96.45.179/RightFax/API/attachments',
data: myData,
processData: false,
contentType: false,
// your other settings...
});