我正在尝试使用Json API将文件上传到Google云端存储。我将请求发布到带有文件附件的url下面。
https://www.googleapis.com/upload/storage/v1/b/mybucket/o?uploadType=media&name=solarsystemlrg.png
但是我找不到请求的页面。 [404]错误。当我使用下面的Url时,我能够列出存储在存储桶中的图像(只是为了确保没有访问问题并且存储桶名称是正确的)。
https://www.googleapis.com/storage/v1/b/mybucket/o
我已经设置了标题。
'Authorization' :'Bearer ' + accessToken,
'Content-Type' : contentType,
'Content-Length' : inputFile.size
请在下面找到代码段。
$.ajax({
url: targetUrl,
headers: reqHeaders,
type: 'POST',
data: reqFormWithDataFile,
async: false,
cache: false,
dataType: 'jsonp',
useDefaultXhrHeader: false,
processData: false,
success: function (response) {
alert('File Upload Successful');
},
error: function (jqXHR, exception) {
var msg = '';
if (jqXHR.status === 0) {
msg = 'Not connect.\n Verify Network.';
} else if (jqXHR.status == 404) {
msg = 'Requested page not found. [404]';
} else if (jqXHR.status == 500) {
msg = 'Internal Server Error [500].';
} else if (exception === 'parsererror') {
msg = 'Requested JSON parse failed.';
} else if (exception === 'timeout') {
msg = 'Time out error.';
} else if (exception === 'abort') {
msg = 'Ajax request aborted.';
} else {
msg = 'Uncaught Error.\n' + jqXHR.responseText;
}
alert(msg);
}
});
我是否需要使用其他网址?或者是否还需要其他设置?请帮忙。
答案 0 :(得分:0)
这是正确的网址,只要您用实际的存储桶名称替换mybucket
即可。在阅读了jquery.ajax()
之后,我通过添加&callback=foo
来模仿我认为的行为,因为dataType: 'jsonp'
和&_=1474410231688
因为cache: false
,并通过curl
,它产生了一个有效回调的有效对象。您可以记录整个jqXHR
以查看更多状态吗?