我试图按照文档https://developer.github.com/v3/git/blobs/#create-a- blob在JavaScript / jQuery中将blob发布到GitHub API- 但是我一直收到404请求
我当前在JavaScript中的请求如下所示:
var uploadURL ="https://api.github.com/repos/daniellevass/web-quiz/git/blobs" + accessToken; console.log(uploadURL); $.ajax({ type: "POST", dataType: "jsonp", url: uploadURL, data:{ "content": "my message", "encoding": "utf-8" } }) .done(function( data ) { console.log( data ); });
控制台吐出以下URL(访问令牌正确):
https://api.github.com/repos/daniellevass/web-quiz/git/blobs?access_token=xxx
我得到以下回应:
data: Object documentation_url: "https://developer.github.com/v3" message: "Not Found" __proto__: Object meta: Object X-Accepted-OAuth-Scopes: "repo" X-GitHub-Media-Type: "github.v3" X-OAuth-Scopes: "gist, repo, user" X-RateLimit-Limit: "5000" X-RateLimit-Remaining: "4992" X-RateLimit-Reset: "1401550358" status: 404 __proto__: Object __proto__: Object
响应在meta对象中显示,我已请求请求正确的OAuth范围。我还可以使用GitHub api和ajax成功获取任何数据-例如用户存储库列表。
我怀疑自己的POST请求可能有问题,但是我不知道哪里出了问题,因此非常感谢任何帮助或建议!
谢谢,
丹妮尔
您不能使用JSONP发出非GET请求。
但是,好消息是,由于API支持CORS,因此您不需要使用JSONP 。
试试看:
var uploadURL ="https://api.github.com/repos/daniellevass/web-quiz/git/blobs" + accessToken; console.log(uploadURL); $.ajax({ type: "POST", url: uploadURL, contentType: "application/json", dataType: "json", data: JSON.stringify({ "content": "aGVsbG8=", "encoding": "utf-8" }) }) .done(function( data ) { console.log( data ); });