0

我正在尝试通过 Javascript 中的弹出窗口发布一个新的 Pastebin。我遇到的问题是“错误的 API 请求,无效的 api_option”

我正在使用的链接: http://pastebin.com/api/api_post.php?api_dev_key=<KEY>&api_paste_name=T‌​ITLE&api_option=paste&api_paste_code=SOMETEXT

它说将 api_option 作为粘贴。我已经尝试查找其他示例,但还没有运气。大家有遇到过这个问题吗?

4

3 回答 3

3

您是否有任何机会需要发布数据而不是获取数据?

此外,像这样将您的 API 密钥放在互联网上可能不是最好的主意。

于 2011-09-26T20:30:09.600 回答
3

您如何将此请求提交给 Pastebin?是通过POST还是GET?我最好的猜测是您正在发送一个GET请求并且 API 需要一个POST.

于 2011-09-26T20:30:26.557 回答
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 请求(注意名称?),所以你必须像我在上面展示的那样在正文中发送它。

于 2019-06-21T07:39:26.423 回答