我正在尝试创建一个 javascript api,以从服务器端(比如 A)获取一个 word doc 作为输入,并将其发布到另一个 api(比如 B),它将其转换为 pdf。我这样做的原因是我可以对任何 A 使用对 B 的调用,而不必修改每个 A API(有多个提供 word 文档的 As)。
这是我到目前为止所做的。问题是当我打电话给 B 时,我无法获取我正在发送的文件。
这是我的代码。
javascript 调用服务器。
$("#downloadFile").click(function(){
$.ajax({
url : "/fileDownload.action",
success : function(data){
handleFile(data);
}
});
});
});
function handleFile(inputFile){
$.ajax({
url : "/convertFile.action",
type : "POST",
data : {inputFile : inputFile },
cache:false,
processData:false,
contentType: "application/msword",
success : function(data){
alert("yay?");
}
});
}
在“/convertFile.action”的服务器端(struts 2.3 动作类),我有一种setInputFile(File inputFile)
方法可以从请求中设置文件。但是,它没有设置文件。
现在,如果我使用带有 HTML 表单的标准文件上传,它会设置文件(虽然没有 javascript,只是普通的 html 和服务器端代码)。
此外,如果我尝试构建一个表单并在没有 ajax 调用的情况下发布,我仍然会得到相同的结果。我试图在这个答案中使用 js来发布表单。
我究竟做错了什么?一种可能性是我需要将输入作为字符串或流。但是还有什么我做错/违反/不能做的吗?