Jquery .val()没有在textarea中返回换行符

ein*_*ein 3 php ajax jquery textarea

我在textarea中遇到了换行问题.

我用.val()函数获取文本:

var messageBody = $('#composeInput').val();
Run Code Online (Sandbox Code Playgroud)

这是我的ajax请求

$.ajax({
    url: 'serverScripts/messages/addMessage.php',
    data: 'messageBody='+messageBody+'&invitedJSONText='+invitedJSONText,
    success: function(){
        //Do something
    }
});
Run Code Online (Sandbox Code Playgroud)

和PHP:

$messageBody = nl2br(mysql_real_escape_string($_GET['messageBody']));
Run Code Online (Sandbox Code Playgroud)

文本:

嗨!

你好吗?

变为:

嗨!你好吗?

如果我将变量messageBody插入另一个div元素,我看不到任何\n这是正常的.我该如何解决?

Sal*_*n A 14

传递字符串作为数据参数时,必须对其进行URL编码,如下所示:

'messageBody=' + encodeURIComponent(messageBody) + '&invitedJSONText=' + encodeURIComponent(invitedJSONText)
Run Code Online (Sandbox Code Playgroud)

如果将参数作为对象传递,jQuery负责编码数据:

$.ajax({
    url: 'serverScripts/messages/addMessage.php',
    data: {
        messageBody: messageBody,
        invitedJSONText: invitedJSONText
    },
    success: function (data, textStatus, jqXHR) {
        $("#foo").html(data); // <-- did something
    }
});
Run Code Online (Sandbox Code Playgroud)