我试图保存这个字符串:
~`@#$%^&*()_+}{":?><,./;'[]=-|\
在php中使用AJAX调用。但是在数据库中它保存为:
~`@#$%^????
这是我的AJAX电话
function saveComment(timesheetId,activityId,date,comment,employeeId) {
var r = $.ajax({
type: 'POST',
url: commentlink,
data: "timesheetId="+timesheetId+"&activityId="+activityId+"&date="+date+"&comment="+comment+"&employeeId="+employeeId,
async: false
}).responseText;
return r;
}
编辑:修复了字符串和代码的显示。
答案 0 :(得分:2)
您需要在javascript中使用奇怪的字符在字符串上调用encodeURIComponent,然后再将其发送到服务器。
编辑:Tomalak指出了一种更好的方法。答案 1 :(得分:0)
如果你想在数据中加入一个变量'text',你应该在执行之前通过$ .URLEncode(text)运行它。事实上,'&amp;'文本中的字符引入了一个新参数。
答案 2 :(得分:0)
jQuery支持将对象作为Ajax请求中的数据参数。这也会自动为您进行URL编码:
$.ajax({
type: 'POST',
url: commentlink,
data: {
timesheetId: timesheetId,
activityId: activityId,
date: date,
comment: comment,
employeeId: employeeId
},
success: function (data) {
alert(data);
}
});
此外 - 您永远不应该使用同步Ajax请求。始终使用回调函数。