我正在尝试通过ajax将文件上传到s3。
这是我的代码:
$.ajax({
type: 'PUT',
url: url,
contentType: application/octet-stream,
processData: false,
crossDomain: true,
data: file,
})
.success(function() {
alert('File uploaded');
})
.error(function() {
alert('File NOT uploaded');
console.log( arguments);
});
它无法正常工作,因为它会在实际网址前面添加http://localhost:1337/api/v1
,因此会失败并向我404: Not found error
同样的事情如果我使用它:
const xhr = new XMLHttpRequest();
xhr.open('PUT', url);
xhr.onreadystatechange = () => {
if(xhr.readyState === 4){
if(xhr.status === 200){
console.log('200 status')
}
else{
alert('Could not upload file.');
}
}
};
xhr.send(file);
答案 0 :(得分:0)
你试过这个吗..
$.ajax({
type: 'POST',
url: url,
contentType: application/octet-stream,
processData: false,
crossDomain: true,
data: file,
success: function(data) {
alert('File uploaded');
}
error: function(data) {
alert('File NOT uploaded');
console.log( arguments);
}
});
答案 1 :(得分:0)
您必须urlEncode您的url参数是'url'。 使用encodeURI()或encodeURIComponent(), 你的例子应该是:
var url =“http://localhost:1337/api/v1?myurl=”+ encodeURIComponent(“https // ntnx.portal ......”);
在服务器端脚本获取帖子后,通过参数'myurl'
获取您的网址