我使用$ .ajax和$ .get调用相同的PHP脚本,得到两个不同的结果。
$ .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']); ?>
答案 0 :(得分:2)
var part1 = / \ n / g;
var newc_data = old_data.replace(part1,&#34;&lt; br&gt;&#34;);
这可能是避免将文本作为格式的一个很好的理由。但在我的情况下,我想写一些智能来将文本转换为json。
答案 1 :(得分:1)
你应该得到相同的结果。根据{{3}}的文档:
这是一个简写的Ajax函数,相当于:
$.ajax({
url: url,
data: data,
success: success,
dataType: dataType
});
此外,如果您查看jQuery.get,您可以清楚地看到.get
只是.ajax
的包装:
jQuery.each( [ "get", "post" ], function( i, method ) {
jQuery[ method ] = function( url, data, callback, type ) {
// shift arguments if data argument was omitted
if ( jQuery.isFunction( data ) ) {
type = type || callback;
callback = data;
data = undefined;
}
return jQuery.ajax({
type: method,
url: url,
data: data,
success: callback,
dataType: type
});
};
});
您确定没有将其他参数传递给jQuery.ajax
吗?您可能希望发布您正在使用的代码,以查看是否还有其他内容。