我正在尝试通过Javascript中的弹出窗口发布新的Pastebin。我得到的问题是它说“错误的API请求,无效的api_option”
我正在使用的链接:
http://pastebin.com/api/api_post.php?api_dev_key=<KEY>&api_paste_name=TITLE&api_option=paste&api_paste_code=SOMETEXT
它表示将api_option作为粘贴。我试过查找其他例子,但还没有运气。大家都遇到过这个问题吗?
答案 0 :(得分:3)
您是否有机会要求发布数据而不是GET?
此外,将API密钥放在互联网上可能不是最好的想法。
答案 1 :(得分:3)
您如何向Pastebin提交此请求?是通过POST
还是GET
?我最好的猜测是,您发送了GET
个请求,API需要POST
。
答案 2 :(得分:0)
尝试一下:
let api = {
option: "paste",
user_key: "XXXXXXXXXXXX",
dev_key: 'XXXXXXXXXXXX',
paste_name: "MyTitle",
paste_format: "JSON",
paste_private: 0,
paste_code: ""
};
let request = new XMLHttpRequest();
request.open('POST', 'http://pastebin.com/api/api_post.php', true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
data['test'] = 'Yeah PasteBin!';
dataString = 'api_option='+api.option+'&api_user_key='+api.user_key+'&api_dev_key='+api.dev_key+
'&api_paste_name='+api.paste_name+'&api_paste_format='+api.paste_format+
'&api_paste_private='+api.paste_private+'&api_paste_code='+data;
request.onreadystatechange = function() {
if (request.status == 200 && request.readyState == 4) {
alert("URL to new pastebin file: " + request.responseText);
}
}
request.send(dataString);
代码的主要问题是将所有内容都放在请求URL中,如果它是GET请求,那很好。 PasteBin的URL:api / api_post.php需要POST请求(请注意名称吗?),因此您必须像上面显示的那样将其发送到正文中。