2010-05-26 2 views
1

У меня есть следующий JQuery в моем коде $j.getJSON("http://localhost:8080/WWTestHarnessWEB/ReadersToolkitFinalController.htm?jsoncallback=?", {'uID': 1}, function(data){alert(data);});JQuery, JSONP и нет успеха

JSon, что я возвращаю выглядит следующим образом ({"positiveCount":"0","negativeCount":"999"})

Но моя тревога никогда не стрелять.

Любая идея, что мне нужно сделать, чтобы это работало?

рассматривает Damien

ответ

2

Я считаю, что если вы используете другое имя для параметра строки запроса обратного вызова, чем callback (похоже, вы используете jsoncallback), вы должны указать jQuery; см. параметр jsonp в объекте options на вызове $.ajax. Это означает, что вам нужно будет использовать ajax вместо getJSON, но это достаточно легко.

т.д .:

$.ajax({ 
    url:  "http://localhost:8080/WWTestHarnessWEB/ReadersToolkitFinalController.htm?jsoncallback=?", 
    dataType: "json", 
    jsonp: "jsoncallback", 
    data:  {'uID': 1}, 
    success: function(data){alert(data);} 
}); 

Я не уверен, нужно ли (или должны) включать "jsoncallback =?" в URL-адрес самостоятельно или позволить jQuery вставить его; быстрый эксперимент должен рассказать вам.

1

попробовать это:

$j.getJSON(
    "http://localhost:8080/WWTestHarnessWEB/ReadersToolkitFinalController.htmjsoncallback=?", 
    {'uID': 1}, 
    function(data, status){ 
    alert(status); 
    }); 

, что делает этот вывод?

+0

Что случилось с этим URL? Конечно, начальная строка '?' Запускает строку запроса. –

1

Действительно ли ваш код сервера соответствует параметру jsoncallback? Если я вас правильно понял, вы только что вернулся

({"positiveCount":"0","negativeCount":"999"}) 

в то время как P в JSONP означает, что необходимо вернуть

callback1234({"positiveCount":"0","negativeCount":"999"}) 

где callback1234 является значение параметра jsoncallback. (Хотя URL-адрес говорит jsoncallback=?, JQuery интерпретирует это специально и заменяет ? уникальной сгенерированной строкой.)

Также what T. J. Crowder said.

0

Приветствия ребята за ответы.

Оказалось, что это было очень привередливы и применяя биты и куски того, что вы, ребята показали мне работали

вот теперь мой JQuery код $j.getJSON( "http://localhost:8080/WWTestHarnessWEB/ReadersToolkitFinalController.htm?jsoncallback=?",
{'uID': 1},
function(data, status){ if (status != 'success') { alert("Status is: " + status); } var positiveCount = data.positiveCount;
var negativeCount = data.negativeCount; $j('td[id*="posiiveVoteId"]').html(getCorrectCountString(positiveCount)); $j('td[id*="negativeVoteId"]').html(getCorrectCountString(negativeCount)); });

Мой ответ JSON выглядит следующим образом `ParamsHeadersPostPutResponseCacheHTMLJSON ответ источник Headersview Сервер Apache-Coyote/1,1 Content-Type приложения/JSON, кодировка = ISO-8859-1 Content-Language EN-US Content-Length 80 Дата Ср, 26 мая 2010 16:38:43 GMT Запрос источника Headersview Host localhost: 8080 User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; EN-US; rv: 1.9.2.3) Gecko/20100401 Firefox/3.6.3 Принять текст/JavaScript, приложение/JavaScript, / Accept-Language-о нас о; д = 0,5 Accept-Encoding GZIP, выкачать Accept-Charset ISO-8859-1, UTF-8; д = 0,7, *; д = 0,7 Keep-Alive 115 Подключение поддержания активности Content-Type применение/х-WWW-форм-urlencoded X-Requested-С XMLHttpRequest Referer http://localhost:8080/WWTestHarnessWEB/jsp/ReadersToolkit/Json.jsp Печенье JSESSIONID = 93FDA3BD0D2450D7FA4BD9A76C388F8A

jsonp1274891923240 ({"positiveCount": "0", "negativeCount": "999"}) `

Еще раз спасибо Damien

Смежные вопросы