доступ к JSON с помощью JavaScript

0

Да, это еще один из тех, кто "обращается к json с javascript". Побалуйте меня, я прочитал остальную часть ответов, событие это, и не помогло.

У меня есть следующий код

var display_order_message = function(res, status) {
    alert(res.status+' '+res.message+' '+res["message"]);
};


$("#ticketform").submit( function(event) {
  data = {};
  var args = {
    type:"POST",
    url:"someurldoesntmatterhere",
    data:data,
    dataType:"json",
    success: somefunctionsheredontmattereither,
    complete: display_order_message
  };
  $.ajax(args);
  event.preventDefault();
});

Теперь, используя Firebug, я вижу, что возвращаемый json

{"status": 200, "qa": [], "message": "order canceled", "qb": []}

Предупреждение в вышеприведенном коде

200 undefined undefined

Итак, почему я могу получить доступ.status, но не.message или ["message"]? И как мне получить доступ к сообщению?

Теги:

2 ответа

4
Лучший ответ

Положите display_order_message в success arg вместо complete.

В настоящее время ваша переменная res является jqXHR которая также имеет дочерний status.

См. Http://api.jquery.com/jquery.ajax/

  • 0
    Да, это было это. Таким образом, я должен включить display_order_message в обоих успехов И ошибок? Или лучше, что если я получу 400, который отвечает json, который также имеет сообщение об ошибке, которое я хочу отобразить? Что мне тогда делать?
  • 0
    Вы должны иметь одну функцию обратного вызова для каждого. У них нет одинаковых параметров. Вы должны использовать успешный обратный вызов для обработки ваших данных и ошибки прикладного уровня ( res.status в вашем случае). Обратный вызов ошибки должен использоваться для обработки ошибки уровня jQuery (или ниже).
0

очень просто

var obj = {"status": 200, "qa": [], "message": "order canceled", "qb": []}
var message = obj.message;
var message2 = obj['message'];

обе работы

  • 0
    Расширьте, пожалуйста? Если var message = obj.message; работает, почему не предупреждает (obj.message) ;?
  • 0
    извините, я забыл об этом var result = eval ('(' + res + ')');
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню