html5仕様によりHTML5 XMLHttpRequest Level 2 APIがサポートされるはずですが、自分で作ったサンプルはやはりだめだった。マルチドメインにアクセス処理は現時点でまだサポートされていないでしょうか?
下記のサンプルではGoogle或はYahooサイトを取得できるはずですが、何回も試したら、エラー0を戻されました、これはどんなエラーでしょうか?自分の勉強不足でエラーの原因が分かりません。;(
サンプル:
http://html5next.appspot.com/xmlhttprequest.html
ご存知の方はいらっしゃったら教えていただけませんでしょうか?
ソース:
<script type="text/javascript">
function clsProgress() {
document.getElementById("divMsg").innerHTML = "";
}
function setProgress(msg) {
document.getElementById("divMsg").innerHTML += msg + "<br/>";
}
function formload()
{
try
{
var xhr = new XMLHttpRequest()
if (typeof xhr.withCredentials === undefined) {
alert("残念ですが、あなたのブラウザーはXMLHttpRequest Level2はサポートしていません。");
$("#btnGoogle").attr("disabled", "disabled");
$("#btnYahoo").attr("disabled", "disabled");
} else {
$("#btnGoogle").removeAttr("disabled");
$("#btnYahoo").removeAttr("disabled");
xhr.upload.onprogress = function(e) {
var ratio = e.loaded / e.total;
setProgress(ratio + "% uploaded");
}
xhr.onprogress = function(e) {
var ratio = e.loaded / e.total;
setProgress(ratio + "% downloaded");
}
xhr.onload = function(e) {
setProgress("finished");
}
xhr.onerror = function(e) {
setProgress("error:" + e.target.status);
}
xhr.onreadystatechange = function() {
setProgress("readyState=" + this.readyState + ", status=" + this.status + ", responseText=" + this.responseText);
}
$("#btnGoogle").click(function(){
clsProgress();
setProgress("Google");
xhr.open("GET", "http://www.google.co.jp", true);
xhr.send(null);
});
$("#btnYahoo").click(function(){
clsProgress();
setProgress("Yahoo");
xhr.open("GET", "http://www.yahoo.co.jp", true);
xhr.send(null);
});
}
}
catch(e)
{
alert(e.description);
}
}
</script>
1 件のコメント:
すでに解決されているかも知れませんが、まだのようでしたらこちらをご覧下さい。
http://www.aduca.org/2010/07/xmlhttprequest-lv2%E3%81%AE%E3%83%8F%E3%83%9E%E3%82%8A%E3%81%A9%E3%81%93%E3%82%8D/
的外れでしたらすみません。
コメントを投稿