我正在尝试使用forecast.io API(最终)制作一些东西,每天都会通过电子邮件向我发送关于我所在地区天气的信息。当我向 API 发出请求时,它会给我一个 JSON 对象,其中包含所有信息。我正在使用 JavaScript 和 PHP 编写这个。这是我到目前为止的代码(现在有点乱):
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript">
var latitude = "42";
var longitude = "-71";
var coordinates = latitude + "," + longitude;
var forecast;
$.ajax({
url: "<?php echo $_SESSION['url'] ?>42,-71",
type: "GET",
dataType: "jsonp",
crossDomain: true,
jasonpCallback: 'blah',
success: function(data) {
forecast = data;
console.log(forecast.daily.summary);
},
error: function() {
console.log("This failed.");
}
});
//**********************************
document.write(getDailySummary());
//**********************************
function getDailySummary() {
var summary = forecast.daily.summary;
return "<p>" + summary + "</p>";
}
</script>
现在,$.ajax() 语句成功运行,并且预测摘要记录在控制台中。但是,它的getDailySummary()
运行并不顺利。运行此程序时出现以下错误:
Uncaught TypeError: Cannot read property 'daily' of undefined index.php:42
getDailySummary index.php:42
(anonymous function) index.php:37
Rain on Thursday and Friday; temperatures rising to 85° on Saturday. index.php:28
这使它听起来像forecast
未定义。我最初的想法是它与范围有关,但我试过摆弄各种各样的东西,包括将预测定义为window.forecast
,但我总是得到这个错误。我哪里错了?