2013-04-11 2 views
2

Я отлаживаю свой javascript-код (см. Ниже).Firebug не показывает вкладку JSON в консоли

Веб-страница заполняется после того, как пользователь нажал кнопку поиска. Я добавил кнопку в webgrid, которая открывает диалоговое окно, которое должно быть заполнено значениями из объекта JSON.

Здесь проблема: при отладке с использованием firebug вкладка JSON в консоли не отображается.

Ниже часть моего кода:

$('.edit-recipients').live('click', function() 
      { 
       $.getJSON('/Methods/GetRecipients/' + $(this).attr('id'), function (data) 
       { 
        var recipient = data; 
        console.log(recipient); 
       $('#edit-opno').val(recipient.OpNo); 

console.log (получатель) показывает значение от моего GetRecipients метода.
Этот код $('#edit-opno').val(recipient.OpNo); предназначен для отображения значения в тексте ввода, где у меня есть этот код ниже.

<input type="text" name="opno" id="edit-opno" size="15" /> 

Однако сначала я думал, что GetRecipients не был выполнен, но из поджигатель понял, что это выполняется с console.log (получателей) с указанием значения, но не вкладки JSON, следовательно, не в состоянии заполнить мое диалоговое окно ввода.

Ниже мой сервер код сторона:

@{ 
    Response.Cache.SetCacheability(HttpCacheability.NoCache); 
    if(UrlData[0].IsInt()){ 
     var db = Database.Open("sb_cpd"); 
     var sql = "SELECT * FROM cpd_recipients WHERE ID = @0"; 
     var recipients = db.QuerySingle(sql,UrlData[0]); 
     Json.Write(recipients, Response.Output); 
    } 
} 

Я вставил изображение случается. Обратите внимание, что мой диалог не заполняется значениями из метода GetRecipients. enter image description here

+2

Похоже заголовок ответа _content-type_ не установлен в _application/json_ – sroes

+0

Спасибо за ответ. Я установил мой $ .ajax ({type: "POST", contentType: "application/json" и т. Д., Но не привязывал данные для ввода текста и не добавил вкладку JSON. –

+0

Это установит заголовок запроса, а не ответ заголовок ответа должен быть установлен serveride.Не могли бы вы показать некоторый код serveride? – sroes

ответ

2

Вы должны установить тип содержимого заголовка в application/json. Firebug будет распознавать ответ как JSON:

@{ 
    Response.Cache.SetCacheability(HttpCacheability.NoCache); 
    if(UrlData[0].IsInt()){ 
     var db = Database.Open("sb_cpd"); 
     var sql = "SELECT * FROM cpd_recipients WHERE ID = @0"; 
     var recipients = db.QuerySingle(sql,UrlData[0]); 
     Response.Headers.Add("Content-type", "application/json"); 
     Json.Write(recipients, Response.Output); 
    } 
} 
Смежные вопросы