XMLHttpRequest (, gerçek url "GET") açık olmaz;

3 Cevap javascript

Ben açmak için bir url almak için çalışıyorum ama bu çalıştı değil neden olarak gücenme yaşayan değilim. Kod listelenir ve aşağıda açıklanmıştır. Herhangi bir yardım derinden takdir edilecektir.

Nesne:

function getXMLHTTPRequest() {
   var req =  false;
   try {
      /* for Firefox */
      req = new XMLHttpRequest(); 
   } catch (err) {
      try {
         /* for some versions of IE */
         req = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (err) {
         try {
            /* for some other versions of IE */
            req = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (err) {
            req = false;
         }
     }
   }

   return req;
}

Nesnesi böyle denir:

<script type="text/javascript">
var myDelete = new getXMLHTTPRequest();
</script>

Şimdi burada ben yapmak istiyorum ne:

function removeArticle(id) {

    if (myDelete) {

    	try {
    		var deletUrl = "delete.php";
    		var query = deletUrl + "?theid=" + id;
    		myDelete.open("GET", query, true);
    		myDelete.onreadystatechange = removeArticleResponse;
    		myDelete.send(null);
    	} catch (e) {
    		alert ("Unable to connect to the server:\n" + e.toString());
    	}
    } else {
    	alert ("Bad! Very BAD!");
    }
}

Bunu yaptığınızda:

		if (myDelete.open("GET", query, true)) {
		myDelete.onreadystatechange = removeArticleResponse;
		myDelete.send(null);
		} else {
			alert ("No road!");
		}

Alert ("Hiçbir yol!"); kod bu noktayı geçti yürütmek olmadığını bana gösteriyor:

if (myDelete.open("GET", query, true)) {

Bu, (myDelete) {çalışır, olduğu anlamına gelir. Kod bu aşamaya geçer ve burada nedense durur: myDelete.open (, gerçek sorgu "GET"); Bu url açmıyor. Ben sorunun ne olduğundan emin değilim.

Edit: Burada sunucu yanıtı erişmek için kullanılan bir fonksiyon:

function removeArticleResponse () {
    if (myDelete.status == 4) {
    	if (myDelete.status == 200) {
    					try {
    						response = myDelete.responseText;
    						document.getElementById('displaynewsletterarticleresult').innerHTML = response;
    					} catch(e) {
    						alert("An error occured while reading the response:" + e.toString());
    					}
    	} else {
    	alert ("An error occured when attempting to retrieve the data:\n" + myDelete.statusText);
    	}
    }
}

3 Cevap

Lütfen tepki fonksiyonunda, yerine. ReadyState arasında. Durum == 4 kontrol demek?

this göre, XMLHttpRequest.open () böylece denetimi her zaman başarısız olur, hiçbir dönüş değeri vardır.

Tüm XMLHttpRequest'ler aynı kökeni politikasına bağlıdır. Belki de bu senin sorunun.

Sen http://en.wikipedia.org/wiki/Same_origin_policy bu konuda daha fazla bilgi edinebilirsiniz