次のコードがあります。
Util.xmlGet = function(uriend, callback) {
var xmlhttp;
var uri;
if (window.XMLHttpRequest) {
// code for modern browsers
xmlhttp=new XMLHttpRequest();
} else {// code for dinosaurs
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if(document.URL.startsWith("file://")) {
uri = "https://tomcat.realm:8443/worldmodel/worldmodel?";
} else {
uri = "/worldmodel/worldmodel?"
}
alert(uri+uriend);
xmlhttp.onreadystatechange=function() {
alert("readystate="+xmlhttp.readyState+", status="+xmlhttp.status);
if (xmlhttp.readyState==4 && xmlhttp.status==0) {
alert("preflight OK");
}
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
alert("calling back");
callback(xmlhttp.responseXML);
}
}
xmlhttp.open("GET",uri+uriend,true);
xmlhttp.setRequestHeader("Content-type","text/xml;charset=UTF-8");
xmlhttp.send();
};
呼び出すと、次のアラートが表示されます。
- URI
- 準備状態=1、ステータス=0
- 準備状態 = 2、状態 = 0
- 準備状態 = 4、状態 = 0
- プリフライト OK
OPTIONS リクエストがブラウザから送信され、「200」レスポンスを受け取りました。より正確には:
https://tomcat.realm:8443/worldmodel/worldmodel?type=thing
Request Method:
OPTIONS
Status Code:
HTTP/1.1 200 OK
Request Headers
14:35:30.000
User-Agent:Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20100101 Firefox/21.0
Origin:nullHost:tomcat.realm:8443
Connection:keep-alive
Access-Control-Request-Method:GET
Access-Control-Request-Headers:content-type
Accept-Language:hu,en-us;q=0.8,es;q=0.5,en;q=0.3
Accept-Encoding:gzip, deflateAccept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Response Headers Δ5ms
Server:Apache-Coyote/1.1
Date:Thu, 06 Jun 2013 12:35:30 GMT
Content-Length:0
Allow:GET, HEAD, POST, TRACE, OPTIONS
GET 要求は送信されず、onreadystatechange からの状態はこれ以上ありません。
これは、Firefox 21.0 Mozilla Firefox for Ubuntu Canonical - 1.0 (これは、Firefox に関するヘルプ/レポートです) から、ローカル ファイルシステムの html ファイルで行われました。
ここで何が問題なのですか?