繁体   English   中英

406使用$ .post请求jQuery响应到外部PHP

[英]406 response with a $.post request jQuery to external PHP

我试图通过$.post在jQuery中发布大量文本,并得到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标头。 这告诉服务器浏览器可以接受哪种格式的数据。 如果服务器无法以Accept标头中请求的格式发送数据,则服务器将发送406 Not Acceptable error

从注释中的屏幕截图中,您可以清楚地看到响应头中的charset集是iso-8859-1 只需以UTF-8编码发送响应即可解决此问题。

看看这个用于在PHP响应中设置字符集标头的SO链接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM