无法弄清楚jQuery ajax调用参数

时间:2010-03-14 00:21:03

标签: javascript jquery ajax

我正在学习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");
       }
});
}

4 个答案:

答案 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"..... ,