2012-03-22 3 views
0

Рассмотрев несколько вопросов/ответов, я не вижу, что мне кажется нужным. У меня есть страница, отправляемая на страницу сервера asp через ajax. Возвращающаяся строка json отображается в консоли на Firefox. Я могу видеть данные, отправленные на страницу asp, я вижу ответАнализ данных JSON с классического сервера asp?

{"firstname": "Christopher", "lastname": "Romero", "email": "[email protected] "," adminlvl ":" 00 "," message ":" Спасибо за вход в систему! " }

Я также могу увидеть значения строки выше на вкладке JSON в консоли -> ALL -> JSON. В консоли нет сообщений об ошибках. Вот мой JavaScript:

$('#loginsub').click(function() { 
$.ajax({ 
     url: "logincheck.asp", 
     type: "POST", 
     data: $('#loginform').serialize(), 
     dataType: "json", 
     success: function(data) { 
      console.log(data); 
      //alert(data.firstname + ' ' + data.lastname); 
      //alert(data[0].firstname + ' ' + data[0].lastname);  
      $.trim(data); 
      var json = $.parseJSON(data); 
      alert(json.firstname); 
     } 
}); 

    }); 

Вот осина, запущенная на сервере, на logincheck.asp:

set cmd = Server.CreateObject("ADODB.Command") 
with cmd 
    .ActiveConnection = cnnopen 
    .CommandText = storedproc 
    .CommandType = adCmdStoredProc 

    dim intCount,intItem 
    for each item in odcformdata 

     select case vartype(odcformdata(item)) 'this is searching for the correct data type to put into the parameter [type] argument below. (integers, currency, dates, & strings) 
      case 2 : .Parameters.Append .CreateParameter("@"&cstr(item),adInteger,adParamInput,len(odcformdata(item)),odcformdata(item)) 
      case 6 : .Parameters.Append .CreateParameter("@"&cstr(item),adCurrency,adParamInput,len(odcformdata(item)),odcformdata(item)) 
      case 7 : .Parameters.Append .CreateParameter("@"&cstr(item),adDate,adParamInput,len(odcformdata(item)),odcformdata(item)) 
      case 8 : .Parameters.Append .CreateParameter("@"&cstr(item),adVarChar,adParamInput,len(odcformdata(item)),odcformdata(item)) 
     end select 
    next 

end with 

set rs = cmd.execute 
    'do stuff with returned results from select or leave blank if insert/delete/etc stored procedure 

    if rs.EOF = false then 
     'Build json array based on fields returned from stored proc. 
     dim arrJSON 
     arrJSON = "{ " 
     while not rs.EOF 
      for each fields in rs.Fields 
       arrJSON = arrJSON & """" & fields.name & """: """ & fields & """," 
      next 
      rs.movenext 
     wend 
     arrJSON = arrJSON & """message"": ""Thanks for logging in!""," 
     arrJSON = left(arrJSON, len(arrJSON)-1) & " }" 
     response.write arrJSON 
    end if 

set rs = nothing 
set cmd = nothing 

odcformdata.removeall 

оповещения() в JavaScript не возвращаются значения, которые я бы ожидать, Я получаю [object Object], возвращающийся в оповещение, когда ожидаю, что массив/строка JSON будет распечатано.

Кто-нибудь с некоторыми советами для меня? Я новичок в jquery и поправляюсь, но это нервничает!

+0

JQuery будет разобрать JSON для вас. То есть параметр данных уже должен быть объектом, и первое (комментированное) предупреждение должно работать. Вам не нужно вызывать $ .parseJSON(). – nnnnnn

+0

Какой результат, если вы используете console.log (json) вместо alert (json.firstname)? – Tuan

ответ

0

Что делает ваш первый console.log(data)?

Это работает для меня: http://jsfiddle.net/2tvCf/

+0

console.log показывает мне: {«firstname»: «Christopher», «lastname»: «Romero», «email»: «[email protected]», «adminlvl»: «00», «message»: Спасибо, что вошли в систему! " } – digitalcb

+0

Я думаю, что тот факт, что кто-то смотрел на него, заставлял его работать ... вроде как электроны, находящиеся в двух местах одновременно, наблюдаемые в квантовой физике. lol Я расколол первое тестовое предупреждение, которое я положил туда, и оно показалось мне просто прекрасным. прежде чем он покажет объект объекта в окне предупреждения. Спасибо за помощь ... Я очень ценю внешний вид! – digitalcb

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