行き方:常にエラーについて、[ネットワーク]タブを確認することを忘れないでください、MY投稿さANSWERこれは私PART ON愚かな質問されたことを詳しく説明、おかげで私ははEDITはHTML5
をepascarello HTML5ウェブサイトのバックエンドコードを書くと、この非常に重要な機能を動作させることができません。このサイトでは、PHPで生成されたXMLファイルを別のサーバーから動的に取得する必要があることがよくあります。私はかなりサーバーがこのサーバーからの要求を許可するようにAccess-Control-Allow-Originを設定していることを確信しています。私は私の上司と確認するが、彼は二日間外出していると正直言って、それは私が間違っている可能性が高いです。誰かがこのコードで何か間違っているのを見ますか?
通知request.send(null)の前に一番下にアラートがあります。 .send()はうまく動作し、同じサーバーからXMLファイルを要求すると関数が完了しますが、他のサーバーからリクエストすると、 "before"アラートが表示されますが、 "after"は表示されません。私にはエラーや他のアラートが表示されていません。
注:
いくつかのグローバル変数への参照や、他の.jsファイルではあり。私はそれらを含むことは無意味であり、疑問を混乱させると判断しました。
'cross'は、要求が別のサーバーにクロスオリジンであるかどうかを示すブール値です。何のアクセス制御 - 許可 - 起源フラグは、私がアクセスしようとしているサーバ上で実際には存在しないことをネットワーク]タブ確認書に記載されてい
function createXmlHttpRequestObject(cross) {
if(cross === undefined) {
cross = false;
}
var xmlHttp;
if(cross) {
if(window.XDomainRequest) {
try {
xmlHttp = new window.XDomainRequest();
} catch(e) {
xmlHttp = false;
}
} else {
xmlHttp = new XMLHttpRequest();
}
} else {
if(window.ActiveXObject) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
xmlHttp = false;
}
} else {
try {
xmlHttp = new XMLHttpRequest();
} catch(e) {
xmlHttp = false;
}
}
}
if(!xmlHttp) {
\t alert ("Error: CREATING XMLHTTP REQUEST OBJECT FAILED");
} else {
\t return xmlHttp;
}
}
//receives xml object from file
function getXmlObject(URL) {
//if url contains any of site root, then it is not cross domain
var cross = false;
if(!URL.includes(url_home)) {
cross = true;
}
var request = createXmlHttpRequestObject(cross);
var response;
if(window.ActiveXObject || window.XDomainRequest) {
request.onload = function(){
response = request.responseXML;
};
request.open('GET',URL,false);
request.send(null);
} else {
request.open('GET',URL,false);
request.onreadystatechange = function(){
if(request.readyState == 4) {
if(request.status == 200) {
response = request.responseXML;
} else {
var warn = 'NOT FOUND\n' + URL;
response = warn;
alert(warn);
}
}
};
alert("before");
request.send(null);
alert("after");
}
return response;
}
[ネットワーク]タブには何が表示されますか?呼び出しにエラーハンドラがないのはなぜですか?問題のあるブラウザですか? – epascarello
一口、これは恥ずかしいです。私はそれを確認することは考えていませんでした。私は比較的Webコーディングに新しいですし、エラーを探すためにWebタブがあることを忘れてしまいます。私の疑惑は正しい。私が取得しようとしているサーバーには、Access-Control-Allow-Originフラグはありません。 Welp、それが変わることができるかどうか、適切な人に尋ねる時間。ありがとう、epascarello。 –