Не могу понять параметры вызова jQuery ajax - PullRequest
2 голосов
/ 14 марта 2010

Я изучаю 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 ]

2 голосов
/ 14 марта 2010

Похоже, у вас возникнут проблемы с той же политикой происхождения .

В двух словах, политика запрещает отправку запроса AJAX на страницы в разных доменах.

Возможно, вы должны использовать JSONP для Geonames, как описано в следующем сообщении переполнения стека:


Кроме того, вам не понадобятся одинарные кавычки:

var webMethod = "http://ws.geonames.org/citiesJSON";
1 голос
/ 18 марта 2010

Я всегда использую способ ниже. Посмотрите, работает ли это для вас. Я изменил ваш код, чтобы он был более похожим на:

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");
    }
});
1 голос
/ 17 марта 2010

Попробуйте вот так

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 голосов
/ 14 марта 2010

я всегда пишу такие параметры:

data: "north=33.4&south=3"..... ,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...