使用ajax和JavaScript对GitHub v3 API进行POST会导致HTTP 404失败 [英] POST to GitHub v3 API using ajax and JavaScript fails with a 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屋!