Я использую jQuery для создания ajax-запросов. Данные попадают в PHP красиво, но ответ не возвращается к javascript правильно. Каким-то образом перед ответом есть пробел. Я знаю это, потому что Firebug так говорит, и мой код не работает, потому что там есть место. Когда я ожидаю, что там будет пространство, все будет хорошо. Любые идеи относительно того, что может добавить пространство?
Вот моя функция ajax:
function my_ajax (aurl, adata, aretfunc) { $.ajax({ type: "POST", url: aurl, data: adata, success: function(msg) { eval(aretfunc+'(msg);'); } }); }
Ищите ложные символы пробела вне тегов <?php ?>
В вашем файле PHP. Любые такие пробелы получат вывод при выполнении скрипта PHP. Если ваш PHP-файл содержит другие файлы PHP, то же самое относится и к этим файлам.
Согласитесь, найдите ложный пробельный символ вне <?php ?>
. Одно предложение, и вполне законное – просто удалить конечный ?>
, Поскольку они не нужны. Фактически, это стандарт кодирования для Drupal.
В некоторых случаях я обнаружил, что просто запуск ответа через $ .trim (), прежде чем делать что-либо, может работать достаточно хорошо.
Конечно, решения, приведенные выше, по-прежнему очень применимы, но если вы находитесь в ситуации, когда вы не можете это изменить, я полагал, что стоило бы выбраться туда.