2012-04-02 3 views
2

Я с помощью Jquery сделать Ajax звонки, как это:JQuery Ajax вызова, добавив, добавив метод обратного вызова в возвращаемую строку JSON

$.ajax({ 
      type: "GET", 
      url: webMethod, 
      data: parameters, 
      dataType: "jsonp", 
      success: function(msg) { 
       XXXX(msg.d); 
      }, 
      error: function(e) { 
     MessageBox("error","An error occured while fetching data.Please try again:<br>"+ e.statusText); 
      } 
     }); 

После того, как сделан вызов, я получаю SyntaxError: Разбираем сообщение об ошибке:

Проверка возвращаемой строки Jsonp с использованием валидатора, если вы найдете что-то очень странное. Обратный вызов найден И в начале строки и в строке т.е. что-то вроде

jQuery171011899920250289142_1333375884404({"d":{"__type":"WebServices.XXXXXXXX","Status":2,.....jQuery171011899920250289142_1333375884404("Description":"XXXXXXXXXXXXXXXXXX",...... 

Обратите внимание, что незаконный метод обратного вызова строки найден в строке аналогична той, за пределами строки JSON. Я использую jquery 1.7. поведение такое же в 1.4 Что вызывает включение строки метода обратного вызова в строку JSON?

ответ

0

Содержимое возвращаемого значения JSONP поступает с вашего сервера. Я бы посоветовал вам взглянуть на полный URL-адрес, отправляемый на сервер, и убедитесь, что параметры URL такие, как вы ожидаете. Затем посмотрите, делает ли сервер то, что он должен. Первый jQuery171011899920250289142_1333375884404(), который обертывает ваш возвращенный JSON, ожидается для ответа JSONP. Другой из ответов JSONP должен быть размещен на вашем сервере, чтобы это было место для поиска.

+0

Как вы сказали, это имеет какое-то отношение к серверной стороне. Действительно, данные возвращаются, если извлекаются из БД. Он хорошо работает для данных с моего сервера разработки, но не работает в производственных данных. Таким образом, более конкретный вопрос заключается в следующем: ЧТО в данных может запускаться строка обратного вызова, которая внезапно появляется в данных? –

+0

@jordankoskei - вам нужно будет показать/рассказать нам больше. Каков полный URL-адрес, включая все параметры запроса, отправляемые на сервер? Какова документация о том, что сервер должен быть отправлен и должен возвращаться? Мы ничего не знаем о вашем API-интерфейсе сервера или о том, что вы его отправляете, поэтому нам сложно предложить что-то конкретное. Иногда полезно видеть сетевую трассировку именно того, что происходит в обоих направлениях по сети. – jfriend00

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