javascript - Uncaught ReferenceError : url is not defined

标签 javascript ajax jquery

我在引用此代码块中的 'url' 时不断收到此错误。

Uncaught ReferenceError: url is not defined.

虽然在ajax上面的一个变量中明确定义了url。我究竟做错了什么?

$.ajax({
url: url,
dataType: 'jsonp',
cache: true,
jsonpCallback: 'wCallback_1'
});

完整代码如下

<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 + '&deg;' + (u.toUpperCase()));
    $('#wText').html(info.text);
};

$.ajax({
    url: url,
    dataType: 'jsonp',
    cache: true,
    jsonpCallback: 'wCallback_1'
});

最佳答案

因为您在 $(function() { }) 包围的代码块中定义并填充了 url,它会在加载文档时运行。

但是,它后面的代码(您尝试使用 url 的地方)会立即运行(在文档加载之前)。

只需将所有代码放在 $(function() { }) block 中,它就可以正常工作...

$(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 + '&deg;' + (u.toUpperCase()));
        $('#wText').html(info.text);
    };

    $.ajax({
        url: url,
        dataType: 'jsonp',
        cache: true,
        jsonpCallback: 'wCallback_1'
    });
});

关于javascript - Uncaught ReferenceError : url is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15012721/

相关文章:

javascript - 从 jquery 中的二维数组填充下拉列表

php - 将参数从 jquery 传递到 php

javascript - 在 Laravel 中使用 ajax 创建图库模态

javascript - 使用 ajax 调用动态填充列表后刷新列表的显示值

javascript - 如何使用 initSelection 附加 jquery select2 值

javascript - 无论球的起始位置如何,我怎样才能始终以相同的速度将球移动到 (x,y) 位置

javascript - Bootstrap datepicker 日期比较错误(英国/美国格式错误)

javascript - NodeJS 将视频的数组缓冲区提取为图像

javascript - 简单的 SVG 路径不起作用

javascript - 如何在不使用html标签的情况下在angularJS中运行for循环?