2012-03-20 14 views
0
var myurl="https://raw.github.com/currencybot/open-exchange-rates/master/latest.json"; 

    $.ajax(
    { 
    url:myurl, 
    type:"POST", 
    dataType:"JSONP", 
    success:function(myObj) 
     { 
     console.log(myObj); 
     } 
    }); 

を得ることができない私は速記getJSONを使用してみましたが、コンソールは私にエラー「利用POSTリクエスト」をスローします。 上記のコードを使用すると、コンソールに「Invalid Label」と表示されます。JSONレスポンスに

答えて

0

あなたは、コードを変更する必要があり、これを試してみてください。

$.post(
    myurl, 
    {}, 
    function(data){ 
    alert(data); 
    },'json' 
); 

変数「データ」をJSONオブジェクトです。

+0

感謝しかし、このdidntの仕事.. –

+0

エラーが文書に引用されたようJSONPリクエストのために、あなたはURL

にコールバックパラメータを持つ必要があります: "" NetworkError:404 Not Found - https://raw.github.com/currencybot/open-exchange-rates/master/latest.json "" –

+0

あなたはemを与える必要はありませんpty '{}' – Starx

0

クロスドメインJSONPはAJAXではありません。 XMLHttpRequestは使用しません。 JavaScriptコードを読み込むダイナミックなスクリプト要素に過ぎません。

試してみてください。


var req = $.ajax({ 
    url : myurl, 
    dataType : "jsonp" 
}); 

req.success(function(myObj) { 
    console.log(myObj); 
}); 

req.error(function() { 
    console.log('some error occured'); 
}); 

私は、エンドサーバ "https://raw.github.comは" JSONPをサポートしていないと思います。したがって、このデータにアクセスするには、おそらくサーバー上にプロキシー・エンドポイントを作成する必要があります。基本的には、独自のサーバー上にエンドポイントを作成し、意味のある方法(カールなど)を使用してそのデータをロードし、そのままそのまま返します。その後、通常のAJAXを使用できます。希望を助けること

+0

どうすればそのコードを変更できますか? –

+0

コードの編集済みの回答を参照してください。 –

+0

でも同じエラーが表示されます.. "無効なラベル" –

1

$.getJSON()を使用してください、それは簡略化された機能と非常に効率的です。

var myurl="https://raw.github.com/currencybot/open-exchange-rates/master/latest.json"; 

$.getJSON(
    myurl, 
    function(data) { 
     //manipulate your json 
}); 

しかし[here]

If the URL includes the string "callback=?" (or similar, as defined by the server-side API), the request is treated as JSONP instead.