Javascript 一些OpenWeatherMapAPI示例代码有问题
我正在尝试运行以下代码:Javascript 一些OpenWeatherMapAPI示例代码有问题,javascript,jquery,openweathermap,Javascript,Jquery,Openweathermap,我正在尝试运行以下代码: var mainWeather = { init: function() { $("#submitWeather").click(function() { return mainWeather.getWeather(); }); }, getWeather: function() { $.get('http://api.openweathermap.org/data/2.5/weather?q=' + $("#cityI
var mainWeather = {
init: function() {
$("#submitWeather").click(function() {
return mainWeather.getWeather();
});
},
getWeather: function() {
$.get('http://api.openweathermap.org/data/2.5/weather?q=' + $("#cityInput").val() + "," + $("#countryInput").val() + "&APPID=myweatherkey_removed", function(data) {
var json = {
json: JSON.stringify(data),
delay: 1
};
echo(json);
});
},
// Prints result from the weatherapi, receiving as param an object
createWeatherWidg: function(data) {
return "<div class='pressure'> <p>Temperature: " + (data.main.temp - 273.15).toFixed(2) + " C</p></div>" +
"<div class='description'> <p>Title: " + data.weather[0].main + "</p></div>" +
"<div class='description'> <p>Description: " + data.weather[0].description + "</p></div>" +
"<div class='wind'> <p>Wind Speed: " + data.wind.speed + "</p></div>" +
"<div class='humidity'> <p>Humidity: " + data.main.humidity + "%</p></div>" +
"<div class='pressure'> <p>Pressure: " + data.main.pressure + " hpa</p></div>";
}
};
var echo = function(dataPass) {
$.ajax({
type: "POST",
url: "/echo/json/",
data: dataPass,
cache: false,
success: function(json) {
var wrapper = $("#weatherWrapper");
wrapper.empty();
wrapper.append("<div class='city'> <p>Place: " + json.name + ", " + json.sys.country + "</p></div>");
wrapper.append(mainWeather.createWeatherWidg(json));
}
});
};
mainWeather.init();
var mainWeather={
init:function(){
$(“#提交者”)。单击(函数(){
返回mainWeather.getWeather();
});
},
getWeather:function(){
$.get('http://api.openweathermap.org/data/2.5/weather?q=“+$(“#城市输入”).val()+”,“+$(“#国家输入”).val()+”&APPID=myweatherkey_已删除”,函数(数据){
var json={
json:json.stringify(数据),
延误:1
};
echo(json);
});
},
//打印weatherapi的结果,作为参数接收对象
createWeatherWidg:函数(数据){
返回“Temperature:”+(data.main.temp-273.15).toFixed(2)+“C”+
标题:“+data.weather[0].main+”“+
说明:“+data.weather[0]。说明+”“+
“风速:”+data.Wind.Speed+“”+
湿度:“+data.main.湿度+”%”+
“压力:”+data.main.Pressure+“hpa”;
}
};
var echo=函数(数据传递){
$.ajax({
类型:“POST”,
url:“/echo/json/”,
数据:dataPass,
cache:false,
成功:函数(json){
var wrapper=$(“#weatherWrapper”);
wrapper.empty();
append(“位置:“+json.name+”,“+json.sys.country+””;
append(mainWeather.createWeatherWidg(json));
}
});
};
mainWeather.init();
及
开放天气空气污染指数
但当我点击submit时,它什么也做不了
Chrome调试器首先说明$.get不是第9行中的函数,因此在搜索之后,我将其更改为jquery.get。现在它说这不是一个函数。我不知道我在做什么。有人能解决这个问题吗?jQuery的超薄构建排除了Ajax。你可以读更多
只要用普通版本进行修改,就可以了。jQuery的超薄版本不包括Ajax。你可以读更多
只需将其更改为正常版本,您就会没事。谢谢您的回复。但是,现在使用普通jquery运行它会产生以下错误:XMLHttpRequest无法加载file:///C:/echo/json/. 只有协议方案支持跨源请求:http、data、chrome、chrome extension、https、chrome-extension-resource。您使用的是文件协议而不是http协议。使用本地服务器,它就会工作。搜索并安装XAMPP或WampServer。如果您阅读错误:跨源请求仅支持协议方案:http…原始代码调用
url:“/echo/json/”,
,这是一个本地url。我从他的jsfiddle复制了该代码:哦,必须在jsfiddle上模拟ajax调用。我真的不明白他为什么要用ajax调用发送json。谢谢你的回复。但是,现在使用普通jquery运行它会产生以下错误:XMLHttpRequest无法加载file:///C:/echo/json/. 只有协议方案支持跨源请求:http、data、chrome、chrome extension、https、chrome-extension-resource。您使用的是文件协议而不是http协议。使用本地服务器,它就会工作。搜索并安装XAMPP或WampServer。如果您阅读错误:跨源请求仅支持协议方案:http…原始代码调用url:“/echo/json/”,
,这是一个本地url。我从他的jsfiddle复制了该代码:哦,必须在jsfiddle上模拟ajax调用。老实说,我不明白他为什么要调用ajax来发送json。
<!DOCTYPE html>
<html>
<head>
<title>Open Weather API</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div id="userArea" class="container">
<div id="stateWrapper">
<input type="text" id="cityInput" placeholder="Enter a State" />
</div>
<br/>
<div id="countryWrapper">
<input type="text" id="countryInput" placeholder="Enter a Country" />
</div>
<br/>
<div id="buttonArea">
<input type="submit" id="submitWeather" class="btn btn-primary"/>
<br/>
</div>
<!- USED TO SHOW RESULT -->
<div id="weatherWrapper">
</div>
</div>
<script type="text/javascript" src="jquery-3.1.1.slim.js"></script>
<script type="text/javascript" src="mainWeather.js"></script>
</body>
</html>