我正在尝试按照文档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
响应显示在元对象中,我已经要求请求正确的OAuth范围。我还可以使用GitHub api和ajax成功获取任何数据 - 例如用户存储库列表。
我怀疑我的POST请求可能有些不正确,但我不知道我哪里出错了所以任何帮助或建议都会非常感激!
谢谢,
丹尼尔。
答案 0 :(得分:2)
您无法使用JSONP发出非GET请求。
然而,好消息是您不需要使用the API supports 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 );
});