Почему в ответ http добавляется символ перевода строки? - PullRequest
0 голосов
/ 22 сентября 2011

Я делаю этот запрос ajax:

 var response = $.ajax({
    url: 'product/add', 
    data: $("#formAddNewRow").serialize(),
    type: "POST",
    success: function() {
    var id = response.responseText;     
                        }            
                      });  

'product/add' - это действие Symfony, которое делает некоторые вещи.вид действия - это то, что возвращается, для целей тестирования этот файл выглядит так:

<?php

 echo "test";

?>

Когда я смотрю на response.responseText сразу после success, я получаю "test\n".Я бы ожидал только "test".

Вот как выглядит заголовок ответа:

Date    Thu, 22 Sep 2011 15:17:45 GMT
Server  Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1
X-Powered-By    PHP/5.3.5
Expires Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control   no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma  no-cache
Content-Length  5
Keep-Alive  timeout=5, max=99
Connection  Keep-Alive
Content-Type    text/html; charset=utf-8

Где-то еще я делаю ajax-запрос к url: 'product/update', это представление в точноститот же код (<?php echo "test"; ?>).Но в этом случае response.responseText равняется "test", чего я и ожидаю - \ n не добавляется.В этом случае заголовок ответа выглядит так:

Date    Thu, 22 Sep 2011 15:27:20 GMT
Server  Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1
X-Powered-By    PHP/5.3.5
Expires Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control   no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma  no-cache
Content-Length  4
Keep-Alive  timeout=5, max=99
Connection  Keep-Alive
Content-Type    text/html; charset=utf-8 

Понятия не имею, почему response.responseText не может быть одинаковым в обоих случаях.

Почему символ новой строки добавляется к response.responseText?

Ответы [ 2 ]

3 голосов
/ 22 сентября 2011

Я бы догадался, что после финала есть символ перевода строки?>

Если я на самом деле не помещаю PHP в HTML-страницу, я всегда оставляю последнюю?>. В этом нет необходимости, и это может вызвать такие проблемы.

0 голосов
/ 22 сентября 2011

Потому что это часть протокола HTTP ?

   Response      = Status-Line               ; Section 6.1
                   *(( general-header        ; Section 4.5
                    | response-header        ; Section 6.2
                    | entity-header ) CRLF)  ; Section 7.1
                   CRLF
                   [ message-body ]          ; Section 7.2
...