我正在尝试通过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);
3条答案
按热度按时间wlzqhblo1#
你试过这个吗?
ecbunoof2#
您必须对url参数进行url编码,该参数为“url”。使用encodeURI()或encodeURIComponent(),您的示例应为:
变量url =“http://localhost:1337/api/v1?myurl=“+编码URI组件(“https//ntnx.portal......”);
在你的服务器端脚本得到后,通过参数'myurl'得到你的url
tag5nh1u3#
老问题,但如果有人发现它,这里是我发现的问题:我最初键入的网址如下:
只要再加一个正斜杠,就像这样,我就完全解决了这个问题。