1

我正在尝试通过静态网站将文件作为附件上传到 Azure Devops。我可以毫无问题地创建新的工作项,但似乎无法让附件上传工作。

var fileInput = document.getElementById('upload');
var file = fileInput.files[0];
var fileName = file.name;

//Binary file type
var r = new FileReader();
    r.readAsBinaryString(file);

$.ajax({
    url: attachUrl,
    type: 'POST',
    data: r,
    cache: false,
    processData: false,
    contentType: false,
    success: function(response) {
        alert("File uploaded");
    },
    beforeSend: function (xhr) {
        xhr.setRequestHeader("Authorization", "Basic " + btoa("" + ":" + '[AUTH]'));
    },
    error: function(XMLHttpRequest, textStatus, errorThrown) { 
        alert("ERROR");
    },
    complete: function () {
    }
    });
    return false;

fileInput、file & r 似乎都按预期填充。

如上所述提交时出现错误 400。我在做一些非常愚蠢的事情吗?我一直在用一个简单的 .txt 文件进行测试。

非常感谢任何帮助:)

4

1 回答 1

0

原来我很傻。缺少 FileReader() 上的 .result

    //Binary file type
var r = new FileReader();
    r.readAsBinaryString(file);

$.ajax({
    url: attachUrl,
    type: 'POST',
    data: r.result,

向前!

于 2020-02-10T22:11:02.437 回答