406 响应 $.post 请求 jQuery 到外部 PHP
406 response with a $.post request jQuery to external PHP
我正在尝试通过 jQuery 中的 $.post
post 大量文本并获得 406 响应。它在大约 300 个字符下工作正常。下面是我的代码:
index.php
html
<form class="formss" action="index.php">
<textarea id="submittts" name="tts" spellcheck="false"></textarea>
</form>
jQuery
$('.save').click(function() {
$.post('store.php', $('.formss').serialize())
});
store.php
<?php
$tts = $_POST['tts'];
$texttostore = $tts;
$servername = "localhost";
$username = "xxx";
$password = "xxx";
$dbname = "notes";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO notes (code)
VALUES ('$texttostore')";
if ($conn->query($sql) === TRUE) {
echo stripslashes(str_replace('\r\n',PHP_EOL,$texttostore));
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
.htaccess
<IfModule mod_security.c>
SecFilterCheckURLEncoding Off
</IfModule>
收到以下回复:
http://i.stack.imgur.com/MUZpX.png
也尝试过使用本地表单提交,但它也会产生错误的请求。
注意:存储时保留所有空格和格式,这是有意的
如果有人能帮助我,那就太好了,谢谢:)
Web 浏览器向服务器请求信息。发生这种情况时,它会发送 Accept
header。这告诉服务器浏览器可以接受什么格式的数据。如果服务器无法以 Accept
header 中请求的格式发送数据,则服务器将发送 406 Not Acceptable error
.
从评论中附上的截图可以清楚地看到charset
响应headers是iso-8859-1
。只需以 UTF-8
编码发送响应即可解决问题。
看看这个 SO link 在 PHP 响应中设置字符集 header。
我正在尝试通过 jQuery 中的 $.post
post 大量文本并获得 406 响应。它在大约 300 个字符下工作正常。下面是我的代码:
index.php
html
<form class="formss" action="index.php">
<textarea id="submittts" name="tts" spellcheck="false"></textarea>
</form>
jQuery
$('.save').click(function() {
$.post('store.php', $('.formss').serialize())
});
store.php
<?php
$tts = $_POST['tts'];
$texttostore = $tts;
$servername = "localhost";
$username = "xxx";
$password = "xxx";
$dbname = "notes";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO notes (code)
VALUES ('$texttostore')";
if ($conn->query($sql) === TRUE) {
echo stripslashes(str_replace('\r\n',PHP_EOL,$texttostore));
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
.htaccess
<IfModule mod_security.c>
SecFilterCheckURLEncoding Off
</IfModule>
收到以下回复: http://i.stack.imgur.com/MUZpX.png
也尝试过使用本地表单提交,但它也会产生错误的请求。
注意:存储时保留所有空格和格式,这是有意的
如果有人能帮助我,那就太好了,谢谢:)
Web 浏览器向服务器请求信息。发生这种情况时,它会发送 Accept
header。这告诉服务器浏览器可以接受什么格式的数据。如果服务器无法以 Accept
header 中请求的格式发送数据,则服务器将发送 406 Not Acceptable error
.
从评论中附上的截图可以清楚地看到charset
响应headers是iso-8859-1
。只需以 UTF-8
编码发送响应即可解决问题。
看看这个 SO link 在 PHP 响应中设置字符集 header。