这是我使用Datatables jQuery插件的代码,它通过AJAX将数据发送到服务器:
$('#allLessonAttachmentsTable').DataTable({
processing: true,
serverSide: true,
"bSort": false,
"responsive": true,
ajax: {
url: 'http://lms.dev/admin/getFilesList',
data: function (d) {
d.id = '8',
d.type = 'App\Lesson'
}
},
columns: [
{data: 'checkbox', name: 'checkbox', "width": "20px"},
{data: 'picture', name: 'picture', 'className': 'text-center'}
]
});
如您所见,发送到服务器的type
参数包含\
(反斜杠)字符。但是当我在Laravel后端检索它时,反斜杠字符被移除。
什么是问题以及为什么要删除?
答案 0 :(得分:5)
JavaScript将\
作为转义字符。您可能需要使用\\
来逃避它。将您的代码更改为:
d.type = 'App\\Lesson'
在控制台本身,您可以看到JavaScript如何处理\
和\\
:
如果整个事情是由PHP生成的,您可以尝试使用PHP的函数addslashes()
来生成字符串友好的输出。