Отображение ответа ajax с использованием coldfusion и jquery - PullRequest
1 голос
/ 21 марта 2012

Я пытаюсь вернуть часть данных с помощью jQuery ajax через ответ POST, но я не могу отобразить данные. Вот код, который я использую.

$(document).ready(function(){
  $('#contentdiv').html(' ');
    $("#idm").change(function(){
      var formval = {idm:$(this).val()};
      $.ajax({
          type: "POST",
          url: "request_processor.cfm",
          dataType: "json",
          data: formval,
          success: function(response){
             $('#contentdiv').fadeIn(2000).append(response.DESCRIPTION);}
      });   
    });
 });

Вот JSON, который я получаю от ХФУ.

{"DESCRIPTION":"Global Alpha I Benchmark"} 

Вот код в request_response.cfm

<cfset oData = CreateObject("component","menudata")>
<cfset oData.setDataSource(dsn)>
<cfset theData = oData.getMenuData(FORM.idm)>
<cfset oJSON = createObject("component","cfjson")>
<cfset theResults = oJSON.encode(theData)>
<cfoutput>#theResults#</cfoutput>

В чем проблема?

Спасибо

1 Ответ

0 голосов
/ 22 марта 2012

Посмотрите на ответ, который вы получите на ваш запрос ajax в сетевом инструменте Firebug или в инструментах разработчика Chrome. Убедитесь, что вы получаете только JSON и ничего больше.

Если вы возвращаете мусор до или после JSON, вам нужно ограничить вывод с помощью cfsetting, чтобы предотвратить вывод, отличный от содержимого между тегами cfoutput.

Вы должны попытаться фактически вызвать метод в CFC, а не вызывать страницу cfm и использовать атрибуты returnformat для функции и / или функции JSON, встроенные в ColdFusion.

Вы также должны убедиться, что ваш элемент #contentdiv является допустимым HTML. Вы смотрели на источник страницы после того, как ответ вернулся? Что-то на самом деле появляется в элементе DOM, которому вы дали идентификатор "contentdiv"? Если это так, то у вас проблема с CSS / javascript.

Вы должны сделать это видимым в CSS и делать вызов append только без fade (). Вы должны убедиться, что «contentdiv» действительно может быть видимым на вашей странице. Как только вы получите описание, отображаемое на странице, снова введите fade (). Однако затухание должно быть приковано после добавления, а не до.

Если честно, это просто отладка 101. Это не прямой ответ, но, надеюсь, вы найдете свой собственный ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...