2013-04-08 6 views
0
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
    <script type="text/javascript"> 
     $(function(){ 

     $.getJSON('http://localhost:8080/privateTraining/getTrainingsJson?callback=?',    
      function(data) { 
       console.log("success"); 
       alert(data); 
     }); 

    }); 

здесь ответ получается, но функция успеха никогда не запускается

Здесь getJson - это удаленный серверный вызов.

, когда я проверяю с firbug, достоверных данных JSON ответ дает (данные JSON проверяются с http://jsonlint.com/ и его дает результат, как Действительный формат JSON)

Даже пробовал:

$.ajax({ 
     dataType: "jsonp", //set this to json 
     url: "http://localhost:8080/privateTraining/getTrainingsJson", 
     success: function(data) 
     { 
      var myObj = data; 
      console.log(myObj); //to see the object 
     } 
    }); 

но дает такой же результат .. функция успеха не выполняется

+0

JSON недействителен JSONP. Поэтому, если вы скажете jQuery ожидать JSONP (оба из которых: 'callback =?' В URL-адресе и 'dataType:" jsonp "будут делать), тогда ответ будет оценен неправильно, и обратный вызов успеха не будет вызван. Итак, что возвращает сервер, это JSONP или JSON? Если это JSON, удалите 'callback =?' И установите 'dataType' в' 'json''. Теперь, если вы делаете кросс-доменный запрос (т. Е. 'Http: // localhost: 8080 /' не обслуживает страницу, с которой сделан запрос), вам придется использовать JSONP, и в этом случае вам нужно настроить ваш сервер будет возвращать JSONP (вместо этого вы можете включить CORS). –

+0

Поскольку мы не знаем, что сервер действительно возвращает и что такое настройка сети, угадывание - это лучшее, что мы можем сделать. –

+0

@FelixKling: сервер возвращает данные json – monda

ответ

1

Попробуйте удалить «? callback =?» от вашего url: я, кажется, помню, что это имеет какое-то отношение к jasonP (cross domain)

Возможно, JQuery ищет функцию под названием «?» вместо того, чтобы называть вашу предоставленную функцию успеха.

+0

Обновлено мой вопрос – monda

+0

jQuery будет подставлять '?' С именем функции, которую он генерирует, и он вызовет обратный вызов успеха внутри этой функции (если все остальное верно, конечно). –

+0

@monda, если вы измените «успех» на «завершение», это срабатывает? – Nathan