使用ajax和JavaScript对GitHub v3 API进行POST会导致HTTP 404失败 [英] POST to GitHub v3 API using ajax and JavaScript fails with a HTTP 404

查看:258
本文介绍了使用ajax和JavaScript对GitHub v3 API进行POST会导致HTTP 404失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想按照文档 https://developer.github.com/v3/git/blobs/#create-a-blob - 但是我一直收到一个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接受的OAuth范围:回购
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请求可能有不正确的地方,但我不知道我出错的地方,所以任何帮助或建议都会非常感谢!



谢谢,

Danielle。

解决方案

您无法使用JSONP发出非GET请求。



然而,好消息是您不需要自 API支持CORS 以来使用JSONP 。



试试这个:

  var uploadURL =https://api.github .com / repos / daniellevass / web-quiz / git / blobs+ accessToken; 

console.log(uploadURL);

$ .ajax({
类型:POST,
url:uploadURL,
contentType:application / json,
dataType: json,
data:JSON.stringify({
content:aGVsbG8 =,
encoding:utf-8
})
})
.done(function(data){
console.log(data);
});


I am trying to post a blob to the GitHub API in JavaScript / jQuery as per the docs https://developer.github.com/v3/git/blobs/#create-a-blob - however I keep receiving a 404 request

My current request in JavaScript looks like so:

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 );
  });

The console spits out the following URL (the access token is correct):

https://api.github.com/repos/daniellevass/web-quiz/git/blobs?access_token=xxx

I get the following response:

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

The response shows in the meta object, that I have asked requested the correct OAuth scopes. I can also successfully GET any data using the GitHub api and ajax - such as a list of the users repositories.

I suspect I may have something incorrect with my POST request, but I have no idea where I've gone wrong so any help or advice would be much appreciated!

Thank you,

Danielle.

解决方案

You can't use JSONP to make non-GET requests.

However, the good news is that you don't need to use JSONP since the API supports CORS.

Give this a try:

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 );
  });

这篇关于使用ajax和JavaScript对GitHub v3 API进行POST会导致HTTP 404失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆