2012-05-29 3 views
0

Я пытаюсь выйти из объекта JSON, но в итоге получаю все HTML.Объект JSON с html

alert("5 " + request.responseText); 
    var JSONObject = eval(+ "(" + request.responseText + ")"); 
    alert("text1: " + JSONObject.name); 

Итак, первая строка печатает чистый HTML-код в предупреждении. Предполагается ли это, или responseText должен быть только объектом JSON? Вторая строка не работает, поэтому третья строка не печатает.

Я видел примеры, где они просто используют eval на responseText, как и я, но в моем случае это не работает ... Любые предложения?

+4

Ваш сервер определяет, какого рода «дерьмо» вы вернетесь. – Pointy

+0

if 'request.responseText' является HTML, он не может быть« eval'ed в объект ». – paislee

+1

« Eval »- это зло, чувак: http://squdgy.wordpress.com/2011/10/04/is-javascript -eval-действительно зла /. Вы * гораздо лучше используете что-то вроде jQuery «getJSON()». Еще лучше, просто создайте свой объект JSON на сервере. IMHO ... – paulsm4

ответ

0

Звучит как извержение HTML и JSON на стороне сервера в одном ответе. Я бы начал с проверки вызова в браузере или прокси, как скрипач, чтобы убедиться, что это только JSON возвращается.

+0

Похоже, что здесь не только JSON. Означает ли это, что это простой способ лишить responseText только JSON? – stianlp

+0

Если у вас JSON внутри HTML-элемента, вы можете использовать что-то вроде JQuery, чтобы получить только бит, который является JSON, который вы вышли из responseXml, а затем просто проанализируете эту строку JSON. –

+0

Я делаю это сейчас: \t var json = $ .getJSON (URL); \t alert (json); \t alert (json.name); (Это три строки коды, но будет выглядеть как один) Первые предупреждения печатают: [объект Object] Вторых печатает предупреждение: не определен Что это значит? – stianlp

1

метод Try

jQuery.ParseJSON(request.responceText); 

Но сначала убедитесь, что ваш сервер передавать данные в формате JSON?