【问题标题】:Github's markdown API and JavascriptGithub 的 markdown API 和 Javascript
【发布时间】:2013-03-09 08:06:33
【问题描述】:

我正在尝试向Github's markdown API 发送一些文本并取回它的原始 HTML 表示形式。

目前我有这个代码:

    $.ajax({
        type: "POST",
        dataType: "jsonp",
        processData: false,
        url: "http://api.github.com/markdown/raw",
        data: {
            "text": $('#some_textarea').val()
        },
        success: function(data){
            console.log("success!");
            console.log(data);
        }, 
        error: function(jqXHR, textStatus, error){
            console.log(jqXHR, textStatus, error);
        }
    });

但我得到“错误”(error 回调中的文本状态)。我做错了什么?

【问题讨论】:

  • 你遇到了什么错误?
  • textStatus 的值为“error”,不多也不少。另外,error 的值是空字符串。
  • 您无法发出 JSONP POST 请求。 JSONP 始终是 GET,因为它只是将 <script> 标记附加到文档。 jQuery 可能正在按照要求执行 JSONP 请求,API 无法理解。
  • @FelixKling 如果我将其更改为“json”,我会得到完全相同的结果
  • 好吧,API 不返回 JSON,它返回简单的文本。如果你设置了dataType: "json",那么jQuery会尝试将响应解析为JSON,这样会失败。如果 API 不支持 CORS(但我似乎记得支持),那么无论如何您都无法从浏览器向它发出 Ajax 请求。

标签: javascript jquery github markdown


【解决方案1】:

您需要发布到 HTTPS 而不是 HTTP,如果您使用的是原始 API,那么

  • 发布的内容类型需要是 text/plain
  • API 返回 html 内容,而不是 JSON 或 JSONP

例如jsfiddle

$.ajax({
    type: "POST",
    dataType: "html",
    processData: false,
    url: "https://api.github.com/markdown/raw",
    data: "Hello world github/linguist#1 **cool**, and #1!",
    contentType: "text/plain",
    success: function(data){
        console.log("success!");
        console.log(data);
    }, 
    error: function(jqXHR, textStatus, error){
        console.log(jqXHR, textStatus, error);
    }
});

【讨论】:

  • 太棒了!请注意 API 的速率限制为每小时 60 个请求。如果您需要更多,您需要注册为应用程序并进行身份验证。
猜你喜欢
  • 2012-09-12
  • 2018-02-22
  • 1970-01-01
  • 1970-01-01
  • 2012-08-10
  • 2021-12-15
  • 2023-02-09
  • 1970-01-01
  • 2011-12-05
相关资源
最近更新 更多