我正在学习jQuery并尝试以下但是参数对我来说很陌生,所有嵌入式引号我认为这是我的问题。有人可以解释参数和引用的位置,并可能重写我的参数行吗? (这是一个查看所需参数的实时网站。)
function AirportInfo() {
var divToBeWorkedOn = '#detail';
var webMethod = "'http://ws.geonames.org/citiesJSON'";
var parameters = "{'north':'44.1','south':'9.9','east':'22.4','west':'55.2','lang':'de'}";
$.ajax({
type: "POST",
url: webMethod,
data: parameters,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
alert(msg.d);
$(divToBeWorkedOn).html(msg.d);
},
error: function(xhr) {
alert(xhr);
alert(xhr.statusText);
alert(xhr.responseText);
$(divToBeWorkedOn).html("Unavailable");
}
});
}
答案 0 :(得分:2)
看起来你会遇到same origin policy的问题。
简而言之,该政策阻止在不同域的网页上提交AJAX请求。
你可能应该使用JSONP作为Geonames,如下面的Stack Overflow帖子所述:
除此之外,你不需要这里的单引号:
var webMethod = "http://ws.geonames.org/citiesJSON";
答案 1 :(得分:1)
试试这种方式
var divToBeWorkedOn = '#detail';
var webMethod = "'http://ws.geonames.org/citiesJSON'";
var parameters = {'north':'44.1','south':'9.9','east':'22.4','west':'55.2','lang':'de'};
$.ajax({
'type': "POST",
'url': webMethod,
'data': parameters,
'contentType': "application/json; charset=utf-8",
'dataType': "json",
'success': function(msg) {
alert(msg.d);
$(divToBeWorkedOn).html(msg.d);
},
'error': function(xhr) {
alert(xhr);
alert(xhr.statusText);
alert(xhr.responseText);
$(divToBeWorkedOn).html("Unavailable");
}
});
答案 2 :(得分:1)
我总是使用下面的方式。看看它是否适合你。我改变你的代码就像我做的那样:
var divToBeWorkedOn = '#detail';
var webMethod = "http://ws.geonames.org/citiesJSON";
var parameters = { north:'44.1',south:'9.9', east:'22.4', west:'55.2',lang:'de' };
$.ajax({
type: "POST",
url: webMethod,
data: parameters,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
alert(msg.d);
$(divToBeWorkedOn).html(msg.d);
},
error: function(xhr) {
alert(xhr);
alert(xhr.statusText);
alert(xhr.responseText);
$(divToBeWorkedOn).html("Unavailable");
}
});
答案 3 :(得分:0)
我总是写这样的参数:
data: "north=33.4&south=3"..... ,