Ajax отправляет и добавляет скрытых персонажей

Я хочу отправить что-то с одного php-сайта на другой. На первом сайте все вроде нормально. Строка выглядит как

--show="автор, книга, текст / п

но когда я проверяю строку после получения, она выглядит

--show="автор, книга, текст / г / п

есть проблема, как-то добавляет /r в конце.

Первый php:

$(document).ready(function() {
    $("#column_button").click(function(){
        var selected = [];
        $.each($("input[name='checkbox_columns']:checked"), function(){            
           selected.push($(this).val());
        });

        var data = new FormData();
        data.append("data", "--show=" + selected);
        //alert(JSON.stringify(selected));
        var ajax = (window.XMLHttpRequest) ? new XMLHttpRequest() : new activeXObject("Microsoft.XMLHTTP");
        ajax.addEventListener("load", statusHandler2, false);
        ajax.open( 'post', 'showParameter.php', true );
        ajax.send(data);
        _("column_button").disabled=true;        
    });
});

Второй php:

if(!empty($_POST['data'])){
    $data = $_POST['data'];}

Выбранный показывает, что это правильно, но если я проверяю $data во втором php, это неправильно.

1 ответ

Решение

Это кажется проблемой, когда серверы используют разные типы окончания строки. Системы Unix (Linux, BSD и т. Д.) Используют \n (LF) по умолчанию MacOS использует \r (CR) где в качестве систем Windows используют \r\n (также известен как CRLF). Возможно, вам придется изменить кодировку символов на одном из серверов на другой.

CR = возврат кареткиLF = перевод строки

Вы можете использовать код, который заменит CRLF или CR просто LF. Эта страница показывает, как вы можете достичь этого просто.

Другие вопросы по тегам