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. Эта страница показывает, как вы можете достичь этого просто.