ajax-status = 0
ich versuche, Informationen von einem entfernten server auf meinem lokalen Rechner.
readyState ist kein problem, also ==4. allerdings ist der status immer 0(anstelle von 200)
wenn ich auf den Knopf gedrückt, es gibt nichts zurück.
hier ist der code:
<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{//code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{//code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET",'http://www.spartanbook.com/textbooks_xml.asp?control=campus&campus=45&term=80',true);
xmlhttp.send();
}
</script>
</head>
<body>
<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" onclick="loadXMLDoc()">Change Content</button>
</body>
</html>
Es ist im Grunde von w3shcools. einfach ersetzt die url.
die url die ich verwende ist zu arbeiten, wenn ich es einfügen in die Adressleiste von meinem browser.
Irgendeine Idee?
Danke!!
"Irgendeine Idee?": Nicht verwenden, w3schools 🙂 w3fools.com
Es funktioniert nicht, weil W3Schools ist schlecht.
Es funktioniert nicht, weil W3Schools ist schlecht.
InformationsquelleAutor cheng | 2011-06-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen, dass Sie nicht einen cross-domain-Anfrage.
Wenn Sie zum Beispiel nicht dienen, diese Seite von http://www.spartanbook.com dann das erwartete Ergebnis wäre, Zugriff verweigert, die seltsamerweise gibt eine readyState von 4, sondern ein status von 0.
Wenn Sie brauchen, um einen cross-domain-Anfrage, dann brauchen Sie, um einen proxy zu verwenden.
Das ist genau der Punkt-- cross-domain-policy gilt für JavaScript asynchrone requests in JavaScript-code. Natürlich können Sie zugreifen, in Ihren browser-- Ihr browser kann Zugriff auf jede Domäne!
+1 zum Ausgleich der möglichen krank-informiert, downvote, bis wer downvoted kommt heraus und erklärt, warum und es gibt tatsächlich einen guten Grund.
wie behebe ich es dann?
Hi Cheng. Sie brauchen, um passieren Ihre Anfrage über einen lokalen proxy. Bitte schauen Sie unter diesem link als Beispiel. link
InformationsquelleAutor Gavin
Dieser Fehlercode zeigt an, dass die Antwort leer war. Scheint ein firewall-Problem
InformationsquelleAutor Hasan Fahim
Wie Gavin sagt, es scheint Ihr problem ist, dass Sie eine cross-domain-Anfrage, die blockiert, die von den meisten Browsern aus Sicherheitsgründen: http://en.wikipedia.org/wiki/Same_origin_policy
Ich schlage vor, Sie verschieben Sie den code von Ihrem lokalen computer an einen Ort, der erfüllt die "same-Origin-Policy", in Ihrem Fall, dass irgendwo auf http://www.spartanbook.com.
Allerdings gibt es einen workaround für das problem, und das ist die Verwendung JSONP. Das wird Ihnen erlauben, zu Holen JSON-Daten von einem Programm auf eine andere domain.
InformationsquelleAutor Gruber