我使用 $.ajax 和 $.get 调用相同的 PHP 脚本,并得到两个不同的结果。
$.ajax 会从通过函数传递的数据中去除换行符,而 $.get 不会。
我尝试将 dataType 显式设置为 text 和 html,但没有成功。 $.get 的大多数参数默认与 $.ajax 中的相同。
http://api.jquery.com/jQuery.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']); ?>