Я вызываю один и тот же скрипт PHP, используя $ .ajax и $ .get, и получаю два разных результата.
$. Ajax удаляет разрывы строк из данных, передаваемых через функцию, а $ .get - нет.
Я попытался явно установить dataType в text и html, но безуспешно. Большинство параметров для $ .get по умолчанию совпадают с $ .ajax.
http://api.jquery.com/jQuery.ajax/
Это ошибка?
Вот точный код, который я использую:
$.get("lib/ajax_scripts/set-product-value.php", { input_id: input_id, val:value });
$.ajax({
url:"lib/ajax_scripts/set-product-value.php",
type:'GET',
data:'input_id='+input_id+'&val='+value});
Ниже приведен код, который может попробовать каждый, у кого есть доступ к серверу с поддержкой PHP и firebug. Посмотрите на ответ firebug для каждого запроса, вы увидите, что <br />
добавляются в $ .get, а не в $ .ajax.
ajaxtest.html
<form method="GET" onsubmit="return false">
<textarea id="data" name="data">a
b
c</textarea>
<input type="submit" value="Submit" id="submit">
</form>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
$('#submit').click(function(){
var data = $('#data').val();
$.get("data.php", { data: data });
$.ajax({
url:"data.php",
type:'GET',
data:'data='+data});
});
</script>
data.php
<?php echo nl2br($_GET['data']); ?>