Я видел несколько вопросов об отправке HTML-данных с PHP на HTML-страницы, но на самом деле этот вопрос наоборот (я могу получить HTML из PHP нормально с json_encode ).
Небольшой фрагмент кода, объясняющий большую часть этого:
savePage = function() {
var pagecontents = $("#editcontents").val();
log("Attempting to save page...");
$.getJSON(docTools+"?jsoncallback=?",{action:'update', loginCookie:loginCookie, page:thisFile, newdata:pagecontents}, function(data) {
if(data.response[0].answer === 'true') {
log('Page'+thisFile+' was saved correctly: '+data.response[0].details);
$("#editcontents, #saveedit, #canceledit").remove();
$("#bodycontents").html(pagecontents);
} else {
log('Failed to save page. Error (' + data.response[0].errorcode + ') : ' + data.response[0].errormessage);
}
});
}
К вашему сведению: журнал просто создает console.log, если он существует.
Итак, в основном здесь происходит то, что переменная pagecontents содержит HTML-данные, все в теге <body>
(то есть в заголовке нет информации, если это имеет значение). Однако, когда я на самом деле вызываю эту функцию, функция log () работает нормально ... но getJSON () никогда не завершается (на самом деле, насколько я могу судить, она никогда не доходит до моего PHP-сервера).
Если я заменим pagecontents только на стандартную строку, он будет работать нормально.
Нужно ли перед отправкой сделать что-то похожее на json_encode из javascript? Что-то, что могло бы преобразовать все в html-сущности?
- Изменить -
Итак, я только что обнаружил вкладку "Net" в Firebug, и она показывает мне то, чего я не осознавал: он показывает запрос GET со всеми правильными данными ... Но сервер возвращает 404. Я не знаю как это может произойти, если PHP-файл - это тот же файл, который я собираю за 5 секунд до этого.
Кроме того, несмотря на то, что я пытался изменить .getJSON () с помощью .post (..., 'json'), Firebug по-прежнему показывает запрос GET, а не POST, поэтому теперь он меня еще больше смущает.