通过 API PUT 将文本区域保存到数据库,删除换行符
React textarea save to database via API PUT removing linebreaks
我正在使用$ajax
将注释放入我的反应应用程序中的数据库中。注释从文本区域保存没有问题,并呈现在我的应用程序中 - 但没有换行符。
根据这个线程 https://github.com/ssorallen/turbo-react/issues/22 反应会故意删除换行符。前端有没有办法解决这个问题?
我已经尝试了几种不同的方法(其中大多数是这个版本的ReactJS - 多行文本区域(:用'''n
替换'n
;用br
替换'n
(不仅不起作用,而且当html br元素在文本区域中呈现时也很丑陋(;在PUT上使用encodeURI
,在GET
上使用decodeURI
。这些尝试的解决方案导致我的 API PUT 请求出错,因为它无法保存编码 URI 中的特殊字符,并且'''n
的反斜杠被视为正斜杠,从而导致 API 调用获得错误的搜索路径(如 api/comment/12312/Thisisa/nComment
(。
该组件非常庞大,但这是文本区域渲染部分:
var resourceInputValue = this.state.resourceValue;
var commentInputValue = this.state.commentValue;
(...
<div className="detailsForms">
<form>
<textarea type="text" name="comment" className="commentForm" placeholder="Comment" defaultValue={commentInputValue} onChange={this.changeComment}/><img src="img/cancel.png" className="clearComment" onClick={this.clearComment}/>
</form>
<div className="formButtonDiv">
<button className="formButton" type="button" onClick={this.putComment}>Add Comment</button>
</div>
</div>
和方法:
getInitialState: function(){
return {
commentValue: this.props.orderProps.comment
}
},
changeComment: function(event){
this.setState({
commentValue: event.target.value
});
if(event.target.value === "") {
this.setState({
commentValue: null
});
}
},
putComment: function(){
$.ajax({
type: "PUT",
url: apiUrl + 'api/OrderComment/' + this.state.detailsId + "/" + this.state.commmentValue,
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", 'Bearer ' + token);
},
success: function () {
document.getElementsByClassName("formButton")[1].className += " formButtonSuccess";
document.getElementsByClassName("formButton")[1].innerHTML = "Done!";
clearInterval(timer);
ajaxCallOrders();
},
done: function(){
}
}).fail(function (_d) {
document.getElementsByClassName("formButton")[1].className += " formButtonFail";
document.getElementsByClassName("formButton")[1].innerHTML = "Try again";
});
},
尝试在发送文本之前运行 encodeURI(( 并在后端对其进行解码。
相关文章:
- 解析云代码作业:删除在数据库中已经存在一个小时的行
- 删除数据库(JSP)上的一行
- 使用Ajax和JQuery从SQL数据库中添加和删除一行
- 如何让ajax与数据库交互,以便发布、获取和删除
- 从mysql数据库中删除项目,然后返回最后一页
- 如何无限删除PouchDB数据库以释放空间
- 使用ajax从数据库Mvc中的表中删除行
- 在Meteor中删除Mongo数据库集合
- 3 选项从数据库中删除更改时选择设置值
- Html-从数据库中删除一行
- 使用数据库中的图像填充dropzone.js删除图像的问题
- Vue.js $remove从数据库中删除后不删除元素
- 索引数据库:删除功能不起作用
- 在删除数据库值之前具有确认屏幕
- 在确认屏幕后删除数据库值 - 值不删除
- 索引数据库删除数据库不会重置版本
- 创建 WebSQL 数据库,然后删除自身
- 使用 app.delete [express.js] 删除 mongo 数据库中的集合
- 删除 localStorage,Chrome/Chromium 中选项卡的数据库存储
- 使用 PHP、Ajax 从数据库中删除