【问题标题】:ajax post to php results in 406 when data contains <meta当数据包含 <meta 时,ajax 发布到 php 会导致 406
【发布时间】:2013-10-22 21:45:04
【问题描述】:

&lt;meta(在表单字段中输入的内容)通过 jQuery ajax 提交的表单

在我的开发服务器 (php 5.3.5) 上运行良好。在生产服务器(php 5.3.27)上,它返回 406。

我似乎无法在开发服务器上解决此问题,因为服务器在调用 php 之前返回 406。

提交表单数据时不带&lt;meta,正常工作。

该表单还具有所见即所得的编辑器和标记标签,如 &lt;h1&gt; 不会导致错误。

我做了一个没有ajax的基本表单,它发布&lt;meta没有问题。

如何进一步解决此问题,以了解服务器认为它正在接收什么以及为什么它认为它不可接受?

【问题讨论】:

    标签: php ajax http-status-code-406


    【解决方案1】:

    浏览器将通过请求中的多个Accept 标头指示它可以接受的内容。如果服务器想要返回浏览器不接受的内容,它会发出 406 响应。

    检查从浏览器发送到服务器的标头(Firebug 或 Chrome 的开发者工具会有所帮助)

    检查服务器配置(特别是任何.htaccess 文件)并确保服务器能够以适当的方式响应。

    【讨论】:

    • Chrome 浏览器正在发送 Accept:application/json, text/javascript, /; q=0.01 基于 ajax 设置 dataType:'json' PHP 服务器响应正在发送 Content-Type:text/html,由于通配符,它​​应该被接受。无论如何......它已经神奇地“修复”了自己,并且包含
    猜你喜欢
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 2015-05-01
    • 1970-01-01
    • 2012-05-29
    • 2014-01-02
    • 1970-01-01
    相关资源
    最近更新 更多