自分で作ったり提供したりするものは、まず自分自身で使ってみろろということです。自分じゃ使わないものなら人はいくらでも無責任にも無思考にもなれる。そういう投げやりな「サービス」やら「プロダクツ」なんて、だれだってイヤだ。自分が作り手と同時に利用者の立場になれば、ちゃんと使えるレベルのものを提供しようとします。

2010年10月7日木曜日

HTML5 XMLHttpRequest Level 2 Sample

いろいろ試してみたんですが、やはりだめです…:'(

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 件のコメント:

Unknown さんのコメント...

すでに解決されているかも知れませんが、まだのようでしたらこちらをご覧下さい。
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/

的外れでしたらすみません。

コメントを投稿

ホームページ