我正在GitHub api中试验Webhooks。我有一个人工作,就像进入我的存储库并单击设置并启用Web挂钩一样。但现在我想在AJAX中这样做,我遇到了问题。每当我尝试向网络api发送POST时,它都会失败并返回400(错误请求)。我不确定我的代码在哪里出错。
function createWebHooksOnRepos(token){
const webhookURL = "https://api.github.com/repos/DanoBuck/AlgorithmsAndDataStructures/hooks";
const json = {
"name": "WebHook",
"active": true,
"events": [
"issue_comment",
"issues"
],
"config": {
"url": "http://39a40427.ngrok.io/api/webhooks/incoming/github",
"content_type": "json"
}
};
$.ajax({
headers: {
"Authorization": "Token " + token
},
url: webhookURL,
data: json,
type: "POST",
dataType: "json",
success: function(data){
console.log(data);
}
});
}
谢谢
答案 0 :(得分:0)
name - string - 必需。使用“web”作为webhook或使用有效的名称 服务。 (有关有效服务名称的列表,请参阅/hooks。)
因此,在您的情况下,只需将Webhook
重命名为web
:
const json = {
"name": "web",
"active": true,
"events": [
"issue_comment",
"issues"
],
"config": {
"url": "http://39a40427.ngrok.io/api/webhooks/incoming/github",
"content_type": "json"
}
};
发送前还要JSON.stringify
您的数据:
$.ajax({
headers: {
"Authorization": "Token " + token
},
url: webhookURL,
data: JSON.stringify(json),
type: "POST",
dataType: "json",
success: function(data) {
console.log(data);
}
});