2016-06-23 16 views
3

のために私は$アヤックス方法キャッチされないでSyntaxError:予期しないトークン:有効なJSON [UPDATED]

$.ajax({ 
     type: "GET", 
     dataType: 'jsonp', 
     url: "http://nrb.org.np/exportForexJSON.php?YY=2016&MM=06", 
     crossDomain : true, 
    }) 
    .done(function(data) { 
     console.log("done"); 
     console.log(data); 
    }) 
    .fail(function(xhr, textStatus, errorThrown) { 
     console.log(xhr); 
     console.log(xhr.responseText); 
     // alert(xhr.responseText); 
     // alert(textStatus); 
    }); 

URLから返されたJSONが

{ 
    "Conversion": { 
     "Currency": [{ 
      "Date": "2016-06-23", 
      "BaseCurrency": "INR", 
      "TargetCurrency": "NPR", 
      "BaseValue": "100", 
      "TargetBuy": "160.00", 
      "TargetSell": "160.15" 
     }, { 
      "Date": "2016-06-23", 
      "BaseCurrency": "USD", 
      "TargetCurrency": "NPR", 
      "BaseValue": "1", 
      "TargetBuy": "107.76", 
      "TargetSell": "108.36" 
     }, { 
      "Date": "2016-06-23", 
      "BaseCurrency": "BHD", 
      "TargetCurrency": "NPR", 
      "BaseValue": "1", 
      "TargetBuy": "285.75", 
      "TargetSell": "N/A" 
     }] 
    } 
} 
ある経てクロスドメインのJSONデータを取得しようとしています

http://jsonlint.com/を使用してJSONが有効かどうかを確認しました。 JSONはOKです。コンソールエラーが発生します。

Uncaught SyntaxError: Unexpected token : 

コンソールは

enter image description here

+1

私たちはPOSTを使用することができるとは思いません'jsonp'と一緒に。ちょうどGETを使用してください。 –

+0

そのAPIをjsで使用することはできませんが、YQLを使用してJSONをJSONPに変換することができます – dandavis

+0

@dandavis jsonpを使用しないと、クロスドメイン要求ではありません。このエラーが発生します。 要求されたリソースに 'Access-Control-Allow-Origin'ヘッダーが存在しません。したがって、 'http:// localhost'はアクセスが許可されていません。 –

答えて

1

が自動的に評価されるジャバスクリプトコンテンツタイプ"json"

0

応答にdataTypeを変更してみてください、次のスクリーンショットのエラーを指しています。 JavaScript JSONパーサーは{と}をオブジェクトではなくブロックとして扱います。

JSONファイルの正しいContent-Typeヘッダーを設定します。 または.json拡張子で保存してください。

あなたのURLはヘッダがJSONP ありながら、POSTとJSONP の

かなりわからない、それは同じ作ってみましょう.json拡張子を持っていますPost data to JsonP

関連する問題