1

TinyPasteAPIにパラメーターを渡そうとしています。HTMLファイルに次のJQueryスクリプトがあります。

$.post("http://tinypaste.com/api/create.json", 
    { 
     "paste": "This is test paste", 
     "title": "Test",
     "is_code": 0,
     "is_private": 1
    },
    function(data) {
        console.log(data);
    }
);

FirefoxのWebコンソールに表示されているように、要求が行われ、成功していることがわかります(応答のコンテンツの長さは予想どおりです)。ただし、コールバック関数はコンソールウィンドウに何も出力しません。

私はここで何が間違っているのですか?

4

4 に答える 4

0

ウェブサイトから別のドメインにリクエストを送信しているようですが、これは同一生成元ポリシーに違反しているため、JSONPを使用してこれを回避する必要があります。

于 2012-06-21T06:04:04.560 に答える
0

編集:POSTはクロスドメインでは機能しません代わりに$.getJSONを使用してください

$.getJSON("http://tinypaste.com/api/create.json", 
    { 
     "paste": "This is test paste", 
     "title": "Test",
     "is_code": 0,
     "is_private": 1
    },
    function(data) {
        console.log(data);
    }
);

APIがJSONPを提供しない可能性は完全にあります。その場合、別の方法に頼る必要があります。

于 2012-06-21T06:04:08.617 に答える
0

あなたはこのように書くべきです

  $.post("http://tinypaste.com/api/create.json", 
            { 
             'paste': "This is test paste", 
             'title': "Test",
             'is_code': 0,
             'is_private': 1
            },
            function(data) {
                console.log(data);
            },
            'jsonp'
        );

データ型もサーバーに送信する必要がありますjsonp

于 2012-06-21T06:00:39.380 に答える
0

質問に投稿されたスクリプトの主な (そして唯一の) 問題は、通常の Web ページでクロスドメインの HTTP/POST リクエストを行っていることです。私は以前、あなたが何らかのブラウザ拡張機能に取り組んでいると信じていました。適切に構成されていれば、クロスドメイン リクエストが可能になります。あなたの場合、HTTP/POST は機能しません。script タグや JSONP を使用するなど、HTTP/GET を機能させるためのハックがあります。

あなたの場合、私が提案するのは、サーバー (ページを提供する) にリクエストを実行させることです。

プロセスは次のとおりです。

  • tinypaste のパラメーターを使用してサーバーに要求を送信します。
  • サーバー側のスクリプトは、tinypaste に対して HTTP/POST を実行し、応答をフェッチします。この応答はブラウザに送信されます。
  • ブラウザは応答を取得します。(そしてリダイレクトか何かかもしれません)

または@charlietflが示唆するように、YQLとJqueryを使用できます

于 2012-06-21T06:36:08.523 に答える