0

JSON を返すClipped API ( http://cliped.me/api.html )を使用しようとしていますが、問題が発生しています。getJSON を使用していますが、Chrome の JS コンソールに次のエラー メッセージが表示されます。

リソースはスクリプトとして解釈されますが、MIME タイプ text/html で転送されます: " http://cliped.me/algorithm/clipedapi.php?url=callback=jQuery1910859611126 airbnb-or-dropbox/&_=1364420105379".

キャッチされていない SyntaxError: 予期しない識別子

リクエストが失敗しました: parsererror、エラー: jQuery19108596111265942454_1364420105378 が呼び出されませんでした

そして、ここに私のJSがあります:

var clippedAPI = "http://clipped.me/algorithm/clippedapi.php?url=[URL]callback=?";
    $.getJSON(clippedAPI, "http://pandodaily.com/2013/03/26/y-combinator-demo-day-2013-still-looking-for-the-next-airbnb-or-dropbox/" ).done(function(json) {
            console.log("JSON Data: " + json.title );
    }).fail(function(jqxhr, textStatus, error){
            var err = textStatus + ', ' + error;
            console.log("Request Failed: " + err);
    });

APIやJSONを使って何かを作ろうとするのはこれが初めてなので、ここで何をすべきか本当にわかりません。グーグルを試してみましたが、何も見つかりません。callback=?

4

1 に答える 1

2

パラメータは、[URL] パラメータが何であるかを単純に「推測」するわけではありません。これを試して:

var clippedAPI = "http://clipped.me/algorithm/clippedapi.php";
$.ajax({
url: clippedAPI,
type: "GET",
dataType: "JSONP",
data: {
url: "http://pandodaily.com/2013/03/26/y-combinator-demo-day-2013-still-looking-for- the-next-airbnb-or-dropbox/"}
}).done(function(json) {
        console.log("JSON Data: " + json.title );
}).fail(function(jqxhr, textStatus, error){
        var err = textStatus + ', ' + error;
        console.log("Request Failed: " + err);
});

ただし、API エンドポイントが JSONP を理解/サポートしていないようで、Access-Control-Allow-Originヘッダーを提供していないため、これでも失敗します。したがって、次の 2 つの選択肢があります。

  • API をローカルで逆プロキシして、クロスドメインの問題を回避し、標準の JSON を通過することができます
  • あなたは...ええと...より良いAPIを手に入れることができますか? 開発者にチケットを提出して、整理してください。
于 2013-03-27T21:51:41.877 に答える