2011-07-27 16 views
1

私はwikipedia apiを使用しているページがあります。しかし、私はJSONをクロスドメインの制限に使用できないので、JSONPを使用します。私のコードは、このJSONPがページ上で動作しない

<body> 
<script type="text/javascript"> 
function res(data){ 
    alert(data); 
}; 
</script> 
<script type="text/javascript" src="http://en.wikipedia.org/w/api.php?action=opensearch&search=api&callback=res&limit=10&namespace=0&format=jsonfm"> 
</script> 
</body> 

ここで私は、URLにresという名前のコールバック関数を提供していますように見えます。私は放火犯で見たように応答が

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<title>MediaWiki API Result</title> 
</head> 
<body> 
<br /> 
<small> 
You are looking at the HTML representation of the JSON format.<br /> 
HTML is good for debugging, but probably is not suitable for your application.<br /> 
See <a href='http://www.mediawiki.org/wiki/API'>complete documentation</a>, or 
<a href='/w/api.php'>API help</a> for more information. 
</small> 
<pre> 
res([ 
&quot;api&quot;, 
[ 
&quot;API&quot;, 
&quot;Apiales&quot;, 
&quot;Apiaceae&quot;, 
&quot;Apia&quot;, 
&quot;Apicomplexa&quot;, 
&quot;Apicomplexa lifecycle stages&quot;, 
&quot;Apidae&quot;, 
&quot;APIA Leichhardt Tigers&quot;, 
&quot;Apical membrane&quot;, 
&quot;Apical consonant&quot; 
] 
]) 
</pre> 
</body> 
</html> 

これは、サーバーがコールバック関数resで囲まれた応答を送信していることを意味して来ましたが、この機能は、ブラウザ(alertが呼び出されていない)によって実行されていない.I Firefoxを使用しています5.これは何が間違っていますか?

答えて

2

それは反応して右がそれを言う:

あなたはJSON形式のHTML表現を見ています。
HTMLはデバッグには適していますが、 アプリケーションには適していない可能性があります。

は、その後どのように私は `json`フォーマットを得るのですか

<script type="text/javascript" src="http://en.wikipedia.org/w/api.php?action=opensearch&search=api&callback=res&limit=10&namespace=0&format=json"> 
+0

を試してみてください。私は、 'format'パラメータをURLにjsonとして渡しています。 – lovesh

+0

あなたはjsonfmを渡しています。私が投稿したものを試してみてください。それは動作するはずです。 –

+0

が働いた。私はそれがjson形式を意味すると思ったので、彼らは 'jsonfm'として指定されたウィキペディアのapiのドキュメント上でうまくいきます。なぜ彼らはそれをjsonfmと言うことができます。ここでは[リンク](www.mediawiki.org/wiki/API:Data_formats) – lovesh

関連する問題