Пробел перед ответом Ajax (jQuery, PHP) - PullRequest
6 голосов
/ 23 июня 2009

Я использую 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);');
  }
 });
}

Ответы [ 3 ]

18 голосов
/ 23 июня 2009

Найдите ложные пробельные символы вне тегов <?php ?> в вашем PHP-файле. Любой такой пробел будет получен при выполнении скрипта PHP. Если ваш файл PHP содержит другие файлы PHP, то же самое относится и к этим файлам.

5 голосов
/ 23 июня 2009

Согласен, ищите ложные пробельные символы за пределами <?php ?>. Одно предложение, которое вполне законно, - просто удалить завершающий ?>, так как они не нужны. Фактически, это стандарт кодирования для Drupal.

4 голосов
/ 23 июня 2009

В некоторых случаях я обнаружил, что простой запуск ответа через $ .trim () перед выполнением каких-либо действий может работать довольно хорошо.

Конечно, приведенные выше решения по-прежнему очень применимы, но если вы находитесь в ситуации, когда вы не можете это изменить, я подумал, что стоило бы их там выбросить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...