PhoneGap は、以下の twitter から json を出力します。ただし、ajax.open に他の URL を使用すると、空白の画面が表示されます。乱雑なコード レイアウトについてのお詫び
<pre>
</head>
<body>
<script type="text/javascript" src="phonegap.js"></script>
<script type="text/javascript">
function appReady(){
}
document.addEventListener("deviceready", appReady, false);
var ajax = new XMLHttpRequest();
ajax.open("GET","http://search.twitter.com/search.json?q=bacon",true);
ajax.send();
ajax.onreadystatechange=function(){
if(ajax.readyState==4 && (ajax.status==200))
{
document.getElementById('main').innerHTML = ajax.responseText;
}
}
</script>
Hello
<div id="main">
</pre>
eclipse を使用して Web サーバーを作成し、ローカルホストからこれらのリクエストのコーディングを開始し、以下のコードを使用して、script タグの phonegap.js を差し引いたところ、/Test2.html から html を呼び出すのに問題なく動作しました"."phonegap.js を削除しました" 私のローカル マシンでは phonegap を使用していないため、"Test.js" に置き換えました。このコードには、XMLHttpRequest に関する W3school のドキュメントから取得した次のコードが含まれています。
エミュレーターで /Test2.html を呼び出そうとすると、空白の画面が表示されます。また、自分のサーバーから twitter json を呼び出すことができません。これは、phonegap を使用していないため、クロス ドメイン保護がオンになっているためだと予想されます。
エミュレータでこのコードを使用して Test2 やその他の URL を表示できない理由を教えてください。また、利用可能な他のオンラインjsonを知っている人はいますか?私はgoogleとyahooのものを試しましたが、どちらでも動作しないようです.
function handler() {
if(this.readyState == this.DONE) {
if(this.status == 200 && this.responseXML != null && this.responseXML.getElementById('test').textContent)
{
// success!
processData(this.responseXML.getElementById('test').textContent);
return;
}
// something went wrong
processData(null);
}
}