我在JQuery中有这个功能:
var dataGet = 'LimFile=' + $('#LimFile').val() + '&ProductNumber=' + $('#ArtNoInsert').val();
$.ajax({
type: 'post',
url: '/Admin/InsertLim',
data: dataGet,
success: function (r) {
alert('Product lim entry inserted!');
},
error: function (req, status, error) {
alert(error)
}
})
它应该从LimFile读取多行并将其发送到VB.NET中的字符串。 问题是当我调试它时,我看到字符串是全长的。当我用vbNewLine拆分它时,它显示只有1行,也就是没有被拆分,就像新行已经丢失一样。
答案 0 :(得分:1)
你永远不应该将字符串作为data
传递,而是传递一个对象,因为在这种情况下jQuery会正确编码它:
var dataGet = {LimFile: $('#LimFile').val(), ProductNumber: $('#ArtNoInsert').val()};
这可能解决了你的问题 - 当POST一个包含换行符的普通字符串时,它们可能会破坏你的东西。
此外,请注意,软线包裹(例如,在未按 ENTER 键的情况下到达行尾时)不已发送到服务器。虽然您可以使用wrap="hard"
作为@RoryMcCrossan建议,但更好的解决方案是将文本包装在服务器上,因为您无论如何都无法信任客户端。
答案 1 :(得分:0)
为什么不在发送端转义$('#LimFile')。val()并在接收端转义它?我发现它更“安全”。