我试图将textarea的值传递给php页面,然后进行处理并将其添加到SQL数据库中。
我希望文本区域能够支持特殊字符。
一切正常,直到我将此字符串放入文本区域并将其发布:
JΛ¿KE#2 @#&($ ^ @%# @#%)) $&@ (“”“
我遇到501未实现错误。
现在,当我将某些PHP代码粘贴到文本区域(不运行,纯粹是另存为字符串)时,出现403 Forbidden错误。
为什么文本区域的值会影响错误代码?
目前,paste.php文件没有代码,因此我可以尝试了解错误的出处。我敢肯定错误来自ajax帖子。我在网上到处都看过,但找不到如何安全地发布字符串。在这种情况下,encodeURIComponent似乎不起作用。
这是按钮按下的JS:
var note = $("#note").val();
var dataString = encodeURIComponent(note);
$.ajax({
type: "POST",
url: "php/paste.php",
data: JSON.stringify({
paste: dataString
}),
dataType: 'text',
contentType: "application/json; charset=utf-8",
success: function(msg) {
alert(msg);
console.log(msg)
},
error: function(ts) {
alert(ts.responseText)
}
});
答案 0 :(得分:0)
尝试添加
Content-Type: application/x-www-form-urlencoded
答案 1 :(得分:0)
需要在数据上使用此功能。
function encode_utf8(s) {
return unescape(encodeURIComponent(s));
}
将内容类型更改为
ContentType: "application/x-www-form-urlencoded; charset=UTF-8"
然后将其添加到我的.htaccess文件中:
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>