为什么jquery $ .ajax删除数据中的换行符,$ .get不是?

我使用$ .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的服务器和萤火虫的代码。 看看每个请求的萤火虫响应,你会看到<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']); ?>

$ Ajax返回的文本,当我将它附加到我的html时,缺少换行符。 由于我想保存格式,所以我不得不在其中添加标签。 所以我用这个字符串函数替换:

var part1 = / n / g;

var newc_data = old_data.replace(part1,“<br>”);

这可能是避免将文本作为格式的一个很好的理由。 但在我的情况下,我想写一些智能将文本转换为json。


你应该得到相同的结果。 根据jQuery.get的文档:

这是一个简写的Ajax函数,它相当于:

$.ajax({
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

此外,如果您查看jQuery源代码,您可以清楚地看到.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吗? 您可能想要发布您正在使用的每个代码,以查看是否还有其他事情正在进行。

链接地址: http://www.djcxy.com/p/8795.html

上一篇: Why does jquery $.ajax remove line breaks in data and $.get doesn't?

下一篇: Missing private key iphone developer in keychain