javascript - 判断HTTP请求的数据类型

标签 javascript php ajax json http

我看到,通过$.ajax(),我可以使用dataType属性来告诉jQuery我期望从服务器得到什么样的响应,通常是json .

但是在服务器端,我如何知道所请求的数据类型?

我知道通常服务器应该根据请求的内容知道要发送什么内容,但我的用例在这里有点不同。我有一个用 PHP 构建的错误处理程序,我想知道以哪种格式输出调试信息。如果出现致命/语法错误、警告,脚本甚至可能无法到达与请求关联的请求处理函数。

有一个 CONTENT_TYPE header ,但显然它始终是 application/x-www-form-urlencoded,并且仅在 POST 请求上发送。

还有一个 HTTP_ACCEPT header ,看起来像 application/json, text/javascript, */*; q=0.01。我需要解析这个字符串吗?

最佳答案

客户端没有标准方法告诉服务器需要什么数据类型。客户端不会告诉“我想要文本/纯文本”或“请只使用 HTML”(这只能从 URI 中假设)。他们只告诉他们可以解释的内容 (HTTP_ACCEPT) 以及他们发布的内容 (CONTENT_TYPE)。

为了使服务器端错误处理程序能够可靠地确定要使用的输出格式,您可以在请求中传递其他请求 header 或查询参数,例如:

$.ajax({
    ...
    headers: {
        "X-Expected-Format": "text/plain"
    }
    ...
});

关于javascript - 判断HTTP请求的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30949108/

相关文章:

javascript - 如何制作一个自动登录我的大学登录页面的 Chrome 扩展?

javascript - 如何使用 Struts2 从 Apache Tomcat 服务器动态更新 div 文本内容

java - java和php之间简单的客户端服务器通信

php - Wordpress 网站 - 使用自定义 PHP 和数据库

javascript - Angular 平均堆栈中的嵌套表

javascript - 有没有办法同时加载javascript脚本?

php - 根据条件从 2 个表中选择查询

php - 如何在 PHP 中使用 AJAX 获取选中的单选按钮值?

jquery - Mailchimp "mce-error-response"创建文本而不是新标签

javascript - 从 Web UI 与本地 Perl 脚本交互