【发布时间】:2019-06-02 10:27:45
【问题描述】:
我试图让某些用户使用 Ajax 将视频上传到 API。这适用于 Postman,但是从浏览器执行此操作时,我收到 500 内部服务器错误。
我无权访问服务器,因此无法显示服务器日志,但据此人说,他收到了“OPTIONS”帖子,但没有收到带有multipart/form-data 的第二个帖子。当我在 chrome 网络工具中检查我的表单数据时,它给了我this。
我为每次上传附加的 url 看起来像 this。
The two requests in the network tool.
我的表单的发布方式似乎有问题,我很确定这是我的错,而不是服务器的错,因为它与 Postman 一起使用。
邮递员代码是:
var form = new FormData();
form.append("video", "C:\\Users\\Sidhant\\Downloads\\examplevid.mp4");
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apiurl/catagoryid/videotitle",
"method": "POST",
"headers": {
"Authorization": "Bearer token",
"Content-Type": "application/x-www-form-urlencoded",
"cache-control": "no-cache",
"Postman-Token": "token"
},
"processData": false,
"contentType": false,
"mimeType": "multipart/form-data",
"data": form
}
$.ajax(settings).done(function (response) {
console.log(response);
});
除了获取文件的方式之外,我的代码是相同的:
var fileinput = document.getElementById("fileinput").files[0];
var form = new FormData($('#fileinput')[0]);
使用 postman 时,视频会添加到 API,而通过浏览器会出现 500 错误。我怎样才能停止收到这个错误,我可以尝试什么。我是 Ajax 的初学者,所以我不熟悉这类问题。
【问题讨论】:
-
什么是 [Object% in your Url?您可能希望将文本框文本附加到 URL 而不是对象本身。
标签: javascript jquery ajax postman