Здравствуйте! Подскажите хелло ворлд на ajax.
пишу как всегда писал
а в яваскрипте Drupal.parseJson(response);
и вот именно в этом Drupal.parseJson косяк
как понял в семёрке вместо drupal_json используеися drupal_json_output
Отгуглить немогу что мне нужно. подскажите пожалуйста ка в семёрке это принято писать.
Комментарии
я через eval его ловлю. один фиг со своего сервера.
хотя могу быть и не прав.
можно чуть подробнее?
а что такое по вашему json?
JavaScript Object Notation?
не?
if ((data.substring(0, 1) != '{') && (data.substring(0, 1) != '[')) {
return { status: 0, data: data.length ? data : Drupal.t('Unspecified error') };
}
return eval('(' + data + ');');
};
гы. ни разу сюда не смотрел. я eval дергаю завернув в try catch.
О, спасибо большое! Вообще семёрка нравится, но так как токо начал её юзать - как задачка, так ступор, в шестёрке хоть куда смотреть знал, решалась всё так или иначе, а тут кое как
в яваскрипте получить переданное значение можно так response.data, где data - значение передаваемое в drupal_json_output, а response - передаваемое значение из джейкверевского гет запроса
А JSON.parse() юзать не пробовали? А jQuery.parseJSON() ?
http://json.org/js.html
нет
оно только с 1.4
и кстати вот она она http://code.jquery.com/jquery-1.5.2.js отседова.
if ( typeof data !== "string" || !data ) {
return null;
}
// Make sure leading/trailing whitespace is removed (IE can't handle it)
data = jQuery.trim( data );
// Make sure the incoming data is actual JSON
// Logic borrowed from http://json.org/json2.js
if ( rvalidchars.test(data.replace(rvalidescape, "@")
.replace(rvalidtokens, "]")
.replace(rvalidbraces, "")) ) {
// Try to use the native JSON parser first
return window.JSON && window.JSON.parse ?
window.JSON.parse( data ) :
(new Function("return " + data))();
} else {
jQuery.error( "Invalid JSON: " + data );
}
},
и fallback в сюда new Function - это тот же eval тока хитрожопее
А в семерке jQuery JavaScript Library v1.4.4
да плевать. надо посмотреть будет как эти обертки себя поведут если им говно вместо json подкладывать.
мало ли - на сервере ошибки, связь рвецо и тд.
Дык я ж и пишу что в Drupal.parseJson ошибка. JSON.parse() и jQuery.parseJSON() тот же результат. просто через точку взял и всё. как понял функция семёрки drupal_json_output по другому передаёт данные в отличае от drupal_json.