2014-01-02 3 views
1

У меня есть простой КЧЙ, который запрашивает базу данных и возвращает объект JSONJQuery не обрабатывает ColdFusion JSON

<cfcomponent> 
<cfsetting showdebugoutput="false" enablecfoutputonly="true"> 
<cffunction name="getNew" access="remote" returntype="query" returnFormat="json" secureJSON="false"> 
    <cfquery datasource="#request.datasource#" name="qSelectNotes"> 
     SELECT TOP 3 university_ID, name FROM university 
    </cfquery> 
    <cfreturn qSelectNotes> 
</cffunction> 

ФКК возвращает следующий JSON, как показано на FireBug:

{"COLUMNS":["UNIVERSITY_ID","NAME"],"DATA":[[1,"MIT"],[2,"EMORY"],[3,"UNC"]]} 

Функция jQuery постоянно возвращает ошибку

"SyntaxError: JSON.parse: unexpected character". 

Моя функция ниже:

$.ajax({ 
     url: "notes_DB_check.cfc?method=getNew", 
     dataType: "json", 
     success: function (myData) { 
     alert(myData.DATA[1][1]); 
      }, 
     error: function (request, status, error) { 
      alert("REQUEST:\t" + request + "\nSTATUS:\t" + status + "\nERROR:\t" + error); 
      } 
     }); 
+3

Нет такой вещи, как «ColdFusion JSON», есть только «JSON». JSON, который вы публикуете, является полностью действительным (я уверен, что вы его отметили), поэтому все, что угодно * * делает ваш джек кода jquery не *, * JSON. –

+1

Это был полезный комментарий. Я был настолько заперт в этом, что не думал, что это может быть что-то другое. У меня была другая функция jQuery на странице, которая мешала этому. Как только я удалил функцию, это работало как шарм! Благодаря!!! – chrippy256

+4

Прохладный! :-) Вы должны суммировать это как ответ и отметить ответ на этот вопрос. Это спасет людей, пытаясь помочь, если они не прочитают эти комментарии. –

ответ

0

Благодаря Адам Камерон указал мне в правильном направлении. Компонент и JSON были действительны, и оказалось, что на странице, которая мешала этой функции, была другая функция jQuery.

2

Try настройки вывода = "ложь" в качестве атрибута в ваших cfcomponent и cffunction тегов.

+0

Спасибо за предложение. Я пытался, но ничего не изменилось. – chrippy256

1

Попробуйте один в ваш JS

$.ajax({ 
    url: "notes_DB_check.cfc?method=getNew", 

    success: function (myData) { 
    var abc = JSON.parse(myData); 
    alert(abc);// Here you will run a for loop and then populate values from json 
     }, 
    error: function (request, status, error) { 
     alert("REQUEST:\t" + request + "\nSTATUS:\t" + status + "\nERROR:\t" + error); 
     } 
    }); 
Смежные вопросы