javascript - 使用服务帐户的 Google drive api rest 上传文件不起作用
问题描述
从谷歌 iam 控制台创建服务帐户并使用 private_key、client_email 等获取 json 后...我在将它们集成到我的 javascript 代码中以将文件上传到带有身份验证服务器的谷歌驱动器到服务器时遇到问题。使用nodejs我没有任何问题(我使用了JWTtoken),如果您能帮助我在示例的javascript发布请求代码中正确插入身份验证参数,我将不胜感激。
$.ajax({
type: "POST",
url: "https://www.googleapis.com/upload/drive/v3/files",
data:{
uploadType:"multipart",
parents: ["xxxxxxxxxxxxxxxxxxxxxxxx"]
},
success: function (data) {
console.log(data);
},
error: function (error) {
console.log(error);
},
async: true,
data: formData,
cache: false,
contentType: false,
Authorization: ????????????????? <---
processData: false,
timeout: 60000
});
};
当我尝试更新此文件时,我看不到任何结果。有人能帮我吗?
解决方案
在 $.ajax 函数中添加 contentType: false 。
将您的文件添加到 ajax 调用内的数据对象中。您应该像这样使用 FormData 对象:
var formData = new FormData();
formData.append('file', $('.file-input')[0].files[0]);
然后在 $.ajax 函数中设置 data: formData
推荐阅读
- r - r 中的 Apache Spark
- android - 如何修复与 android.gms:play-services:12.0.1 相关的 android studio 中的依赖关系解析错误
- python - 如何在python中查找忽略大小写的某些值的行号
- mongodb - 如何使用数组嵌入对象值投影 eq 聚合
- rust - Rust 中使用线程时 self 参数的生命周期
- django - 无法在 heroku 上的 django 部署中注册用户?
- python - PairGrid python seaborn中的堆叠条形图
- unity3d - 使用 Unity 的 BestHTTP 的 socket.io 客户端是否使用 NestJS 的 WebSocketGateway 在 socket.io 服务器中注册?
- java - Spring Error-线程“main”中的异常java.lang.ExceptionInInitializerError
- c# - gRPC - 在没有活动的 rpc 调用时检测连接更改