一尘不染

使用ajax和JavaScript POST到GitHub v3 API失败,并显示HTTP 404

ajax

我试图按照文档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请求可能有问题,但是我不知道哪里出了问题,因此非常感谢任何帮助或建议!

谢谢,

丹妮尔


阅读 245

收藏
2020-07-26

共1个答案

一尘不染

您不能使用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 );
  });
2020-07-26