未捕获的ReferenceError:未定义url
Uncaught ReferenceError: url is not defined
我在引用这段代码中的'url'
时一直收到这个错误。
未捕获的ReferenceError:未定义url。
尽管URL是在ajax之上的一个变量中明确定义的。我做错了什么?
$.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 + '°' + (u.toUpperCase()));
$('#wText').html(info.text);
};
$.ajax({
url: url,
dataType: 'jsonp',
cache: true,
jsonpCallback: 'wCallback_1'
});
因为您在$(function() { })
包围的代码块中定义并填充url
,该代码块在加载文档时运行。
但是,它后面的代码(尝试使用url
的地方)会立即运行(在加载文档之前)。
只需将所有代码放在$(function() { })
块中,它就会正常工作。。。
$(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'
});
});
您的url
不在$.ajax
调用的范围内。您需要将其移动到就绪处理程序中,或者使url作为全局可用
$(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;
$.ajax({
url: url,
dataType: 'jsonp',
cache: true,
jsonpCallback: 'wCallback_1'
});
});
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);
};
您的url
是在函数内部定义的,因此它绑定到该执行上下文(范围)。您需要$.ajax
调用处于相同的执行上下文中。如果你把它移到函数中,那么它就会工作。
相关文章:
- Regex提取URL返回数组的一部分;未定义”;
- 类型错误:url未定义extjs 4正在填充组合框
- LinkedIn共享链接图片未使用自定义url更新
- 为什么当我点击<a>使用纯javascript;这个“;返回url,数组返回“url”;未定义”;
- TypeError:无法读取属性'url'的未定义
- 谷歌URL缩短器API-未压缩类型错误:未定义不是一个函数
- InAppBrowser事件.url始终未定义
- 查找任何未定义的变量并从url字符串中隐藏
- "未定义的“;以及“;高速缓存/xxx”;已附加到URL
- TypeError:这个_在Dojo FilteringSelect-onChange回调中未定义url
- 用于从许多带有“for”循环的URL中获取HTML信息的X射线使对象未定义
- 未捕获的引用错误: 未定义 url
- 自 2012 年 6 月 12 日以来,“未定义”随机附加到我网站上 1% 的请求 URL 中
- 当在同一窗口中打开 URL 时,窗口.Opener 是未定义的
- 无法访问父 SharePoint URL.未捕获的类型错误: 无法读取未定义的属性“get_web”
- JavaScript 窗口.URL 在函数中未定义
- JavaScript URL 未定义的重定向
- 未捕获的类型错误:无法读取未定义的属性“url” - Google Image API
- 华丽的弹出窗口:获得"无法加载图像“;并且图像url未定义
- 未捕获的ReferenceError:未定义url