Uncaught ReferenceError: url ist nicht definiert
Ich bekomme immer diese Fehler bei verweisen auf 'url'
in diesem code-block.
Uncaught ReferenceError: url ist nicht definiert.
Obwohl die URL ist eindeutig definiert, die in einer Variablen über der ajax. Was mache ich falsch?
$.ajax({
url: url,
dataType: 'jsonp',
cache: true,
jsonpCallback: 'wCallback_1'
});
Hier ist der vollständige code
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript" language="javascript">
$(function () {
//Specify the location code and units (f or c)
var location = 'SPXX0550';
var u = 'c';
//Run the query (pull data from rss feed)
var query = 'SELECT * FROM rss WHERE url="http://xml.weather.yahoo.com/forecastrss/' + location + '_' + u + '.xml"';
var cacheBuster = Math.floor((new Date().getTime()) /1200 /1000);
var url = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent(query) + '&format=json&_nocache=' + cacheBuster;
});
window['wCallback_1'] = function(data) {
var info = data.query.results.item.forecast[0];
$('#wIcon').append('<img src="http://l.yimg.com/a/i/us/we/52/' + info.code + '.gif" width="34" height="34" title="' + info.text + '" />');
$('#wTemp').html(info.temp + '°' + (u.toUpperCase()));
$('#wText').html(info.text);
};
$.ajax({
url: url,
dataType: 'jsonp',
cache: true,
jsonpCallback: 'wCallback_1'
});
Sie haben Ihre ajax-Aufruf außerhalb der Reichweite Ihrer ready-Funktion. Also den ajax-Aufruf versucht auszuführen, bevor das Dokument fertig ist, was die
url
variable als nicht definiert ist, ist, dass es kompiliert wird bei der Ausführung des Dokuments den Status " bereit.url
lokale ready
Rückruf. Warum nicht Sie alle Ihre code innerhalb der callback? Und zusätzlich, der moment, den Sie ausführen $.ajax
, die ready
Rückruf war nicht genannt noch.InformationsquelleAutor ServerSideSkittles | 2013-02-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil Sie definieren und füllen
url
im code-block, umgeben von$(function() { })
, dass ausgeführt wird, wenn das Dokument geladen ist.Jedoch, den folgenden code (in dem Sie versuchen, zu verwenden
url
) sofort ausgeführt wird (bevor das Dokument geladen wurde).Setzen Sie einfach den gesamten code innerhalb der
$(function() { })
block und es funktioniert gut...Keine sorgen - Froh zu helfen, mate 🙂
InformationsquelleAutor Archer
Ihre
url
ist außerhalb des Bereichs Ihrer$.ajax
nennen. Sie brauchen, um es in der ready-handler, oder stellen Sie url als GlobaleInformationsquelleAutor Juan Mendes
Ihre
url
definiert ist, innerhalb einer Funktion, so dass es gebunden ist, dass die Ausführung Kontext (scope). Sie müssen die$.ajax
rufen Sie in demselben Ausführungskontext. Wenn Sie verschieben Sie Sie in die Funktion, dann wird es funktionieren.InformationsquelleAutor matt snider