質問

APIを使用してJSONとして、スタックオーバーフロープロファイルから情報を取得したいと思います。

だから私はこのリンクを使用します http:/api.stackoverflow.com/1.0/users/401025/.

しかし、リクエストを行うと、JSONデータを含むファイルを取得します。 Ajaxを使用してそのファイルに対処するにはどうすればよいですか?

これが私のコードです(http://jsfiddle.net/hjhfu/2/):

<html>
 <head>
  <script>
   var req;

   getReputation();

   function getReputation(){
      req = new XMLHttpRequest();
      req.open('GET', 'http://api.stackoverflow.com/1.0/users/401025/');
      req.onreadystatechange = processUser;
      req.send();
   }

   function processUser(){       
       var res = JSON.parse(req.responseText);
       alert('test');      
   }
  </script>
 </head>

アラートは決して解雇されません req.responseText 空のようです。何か案は?

役に立ちましたか?

解決

ノート: AJAXを使用して別のドメインにアクセスすることはできません。 (これはと呼ばれます 同じドメインポリシー.)

ただし、StackOverFlow APIはJSONPコールバックをサポートしているため、解決策があります。

aを介してスクリプトにロードします <script> 鬼ごっこ。

まさにそれを行う関数を作成します:

function load_script(src) {
   var scrip = document.createElement('script');
   scrip.src = src;
   document.getElementsByTagName('head')[0].appendChild(scrip);
   return scrip; //just for the heck of it
}

コールバック関数を設定します:

function soResponse(obj) {
   alert(obj.users[0].reputation);
}

ロードしてください!

load_script('http://api.stackoverflow.com/1.0/users/401025/?jsonp=soResponse');
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top