我正在使用开放天气地图api webservice进行ajax调用,以便使用纬度和经度获取当前天气问题是在我的普通php文件夹中同样的调用,但它在我的phongap应用程序中不起作用。我的ajax调用如下所示
$.ajax({
type : "GET",
dataType: "jsonp",
url : "http://api.openweathermap.org/data/2.5/weather?lat=35&lon=139",
}).done( function(msg){
var response = JSON.stringify(msg);
var parsedResponse = JSON.parse(response);
alert(parsedResponse.main.temp_min);
});
});
我试过没有dataType: "jsonp"
尝试将其更改为"json"
,但根本没有任何作用。请帮助我,因为我目前仍然坚持这一点。
答案 0 :(得分:1)
您是否已将config.xml中的网址列入白名单?
<access origin="http://api.openweathermap.org" />
了解详情:http://docs.phonegap.com/en/3.0.0/guide_appdev_whitelist_index.md.html#Domain%20Whitelist%20Guide
答案 1 :(得分:0)
var weather = ""
var ajax_call = "http://api.openweathermap.org/data/2.5/weather?lat=35&lon=139";
$.ajax({
type: "GET",
url: ajax_call,
dataType: "jsonp",
success: function(response){
$.each(response, function(key, value) {
//alert(key+"====="+value)
if(key == "coord"){
weather += '<div><strong>coord<strong><div>';
$.each(value, function(key, value) {
if(key == "lon")
weather += '<div>lon: '+value+'<div>';
if(key == "lat")
weather += '<div>lat: '+value+'<div>';
});
}
if(key == "weather"){
weather += '<div><strong>weather<strong><div>';
$.each(value, function(key, value) {
if(value.id)
weather += '<div>id: '+value.id+'<div>';
if(value.main)
weather += '<div>main: '+value.main+'<div>';
if(value.description)
weather += '<div>description: '+value.description+'<div>';
});
}
if(key == "main"){
weather += '<div><strong>main<strong><div>';
$.each(value, function(key, value) {
if(key == "temp")
weather += '<div>temp: '+value+'<div>';
if(key == "temp_min")
weather += '<div>temp_min: '+value+'<div>';
if(key == "temp_max")
weather += '<div>temp_max: '+value+'<div>';
if(key == "pressure")
weather += '<div>pressure: '+value+'<div>';
if(key == "sea_level")
weather += '<div>sea_level: '+value+'<div>';
if(key == "grnd_level")
weather += '<div>grnd_level: '+value+'<div>';
if(key == "humidity")
weather += '<div>humidity: '+value+'<div>';
});
}
});
alert(weather)
console.log(weather)
}
}).done(function() {
})
答案 2 :(得分:0)
用于将来的搜索
yourprojectpath / config.xml
添加或检查以下几行
<com.is.cut.App
...
android:layout_above="@+id/adView"
/>
可能还需要安装“ cordova-plugin-whitelist”插件:
科尔多瓦
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
Phonegap
cordova plugin add cordova-plugin-whitelist
cordova prepare
还要确保在file.html中添加必要的Content-Security-Policy:
https://github.com/apache/cordova-plugin-whitelist#content-security-policy
答案 3 :(得分:0)
这是白名单https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-whitelist/的问题 安装它并转到config.xml以允许