在HTMl上我有textarea (a comment box) (id = #comment")
可以包含多行。当我用ajax发送它时我没有问题。虽然在检索此数据时,JSON数据不再有效(在json的次要提取之下:
"items" : [ {
...<<other values>>...,
"comment": "Approved!!!!
Or Not
Or Did I
Approve this....."
,...<<other values>>...}
所以我假设在将它发送到服务器时我必须转换我的textarea的值。 但是当我尝试使用JSON.Parse时出现错误:
$.ajax({
type: "POST",
url: "updateitem.aspx",
data: { myId: $("body").attr("id"),
comment: JSON.parse($("#comment").val()),
}
... })
但这会导致错误:
SyntaxError: JSON.parse: unexpected keyword at line 1 column 1 of the JSON data
comment: JSON.parse($("#comment").val()),
所以我的问题确实是:如何将数据从textarea发送到服务器。同时保留任何非JSON字符&amp;换行符。解决方案可能很简单,但我似乎找到的只有:Past JSON in textarea
,ReplaceAll
(这可能有用,但我正在寻找更好的解决方案)
尝试了以下解决方案,但无济于事。 how-can-i-pass-textarea-data-via-ajax-that-contains-ampersands-and-or-linebreaks
答案 0 :(得分:1)
您需要使用JSON.stringify
:
var comment = JSON.stringify($("#comment").val());
// Now comment is a JSON string to send to your server
$.ajax({
type: "POST",
url: "updateitem.aspx",
data: {
myId: $("body").attr("id"),
comment: comment,
}
... })
请参阅jsfiddle:http://jsfiddle.net/14cjojhq/1/