问题标签 [http-status-code-406]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1070 浏览

django - 来自 django 的“未找到:/406.shtml”

我在共享主机上使用 apache fcgi 运行 django。我已将其设置为报告 404 错误并通过电子邮件继续查看Not Found: /406.shtml(我猜s是因为它只是 https)。但是我已经在以下位置设置了错误文档.htaccess

ErrorDocument在为每个错误设置一个之前,我从 django 收到了一堆类似的 404 错误,但它仍然发生在 406 上。grep 406通过 apache 错误日志,我看到偶尔出现 406(不是 404)错误406.shtml,例如以下,但不如 django 给我发电子邮件的频率:

我什至不确定这是否是 apache 内部重定向406.shtml并将其转发到 django 或者是否某些机器人试图406.shtml直接查找。前者似乎表明ErrorDocument. 后者并不是我真正的问题,但是要么我应该406.shtml在 apache 日志中看到 404,要么什么都没有,因为 django 将处理 404?我怎样才能进一步追踪它?

我无法仅通过访问我的网站来重现该问题,但我想知道发生了什么。

0 投票
0 回答
421 浏览

linux - 为什么 Linux 上的 PHP cURL 会更改 Content-Type 请求标头?

似乎 PHP 的内置 cURL 模块在发送标题字段之前会更改它们。

我开发了一个小类来通过 HTTP 请求与编码器设备进行通信,使用 cURL 来完成任务。该代码在 Windows 下运行良好,但是,当我在 Debian 下运行它时,设备响应 HTTP 406 错误。

错误代码表示服务器无法以请求的格式响应。(更多信息

这很奇怪,因为响应类型是由 URL 的扩展名决定的(可能的模式是 xml 和 json),而我没有Accept在 header 中明确设置参数。

使用该CURLOPT_VERBOSE参数,它会转储以下数据:

看起来Content-Type: application/xml改成了application/x-www-form-urlencoded,我认为这是请求失败如此悲惨的主要原因。

传递给curl_setopts()函数的数组如下所示:

如您所见,没有Accept标签,并且内容类型设置为application/xml.

所以这是我的问题:为什么 curl 会更改请求的标头?如果问题的根源是其他问题,那么它在 Win10 上运行而不在 Debian Jessie 上运行的原因是什么?

更新(16. 04. 04.):

有趣的是,相同版本的 cURL 库在 PHP 中不起作用,但在 cli 中起作用:

linux 机器上的 CURL 版本是7.26.0 (x86_64-pc-linux-gnu) libcurl/7.26.0

在此先感谢,并为文字墙感到抱歉。

0 投票
0 回答
113 浏览

.net - 如何在内容协商期间使 API 抛出 406 或 415 代码

在构建 RESTful API 时,最好在进行内容协商时发出 406(不可接受)和 415(不支持的媒体类型)的返回码。

我不清楚的是如何在使用属性路由的 WebAPI2 应用程序中返回这些代码。

我已经看到了关于如何使用 ActionMethodSelectorAttribute 和 RouteFactoryAttribute 来创建自定义路由选择器的示例,但是当由于 Accept 或 Content-Type 不匹配而无法找到路由时,自动响应是 404 Not found 错误,这并不能完全解释问题。

我想做的是捕获为什么找不到路由,如果是由于内容类型协商失败,返回适当的 406 或 415 响应代码。

是否有任何示例显示如何执行此操作?

0 投票
1 回答
110 浏览

java - .com 作为 pathvar 的 Spring 406 状态代码问题

我有以下控制器方法:

当将 loginId 传递为“abc.com”时,它会给出 406 状态码,否则它工作得很好。

我有以下 WebConfig 文件:

它只为 .com 发送 406 状态代码,而不为 .randomvalue 发送。我尝试在 stackoverdflow 上添加其他线程建议的 jackson-core-asl 和 jackson-databind-asl jar,但对我没有任何作用。请帮忙解决这个问题。

0 投票
1 回答
186 浏览

php - Plivo 入站 SMS 被 Modsec 阻止?

哦,男孩 - 这对我来说是一个新的。

我有一个 Plivo 驱动的 SMS 应用程序运行(或多或少完美无瑕)几个月了。2天前,它无缘无故停止回复我的入站短信。那时我没有太多时间去弄清楚,但我终于有时间看东西了,坦率地说,这很丑陋。

尽我所能提供的详细信息:我正在通过 HostGator 运行我的网络服务器,过去它运行良好。我对 Plivo 的处理语言是 PHP。现在,入站 SMS 甚至没有到达我的处理脚本,所以这就是错误所在 - Plivo 将消息报告为“未传递”,并且调试级错误日志为我提供了这个很好的警告:

传入消息 0287e6ce-0d30-11e6-a4b5-22000afd08f6: fetch_message_url POST (URL HERE) with {'To': 'Valid Number', 'From': 'Another Valid Number', 'TotalRate': '0', 'Units' : '1', 'Text': 'Weather', 'TotalAmount': '0', 'Type': 'sms', 'MessageUUID': 'Valid UUID'} -- 失败- 406 不可接受!

不能接受的!

在此服务器上找不到所请求资源的适当表示。此错误是由 Mod_Security 生成的。

请注意,任何识别信息都已从该块引用中删除。我目前正在下载 modsec error_log,最上面的是:

时间戳正好是最后一条成功发送的 SMS 之后的 1 分钟,以及第一个失败的 SMS 之前的大约 30 分钟。我不知道该错误日志是否是 modsec 启动的时间,或者发生了什么,但我认为这可能与它有关。我正在努力寻找解决方案,这就是我目前想出的:

找到 Plivo 入站 SMS IP(它从中发布的 IP)并在 modsec 中将其列入白名单

或者

找到一种方法来修改 PHP 脚本所期望的内容,以便它可以让帖子通过?

或者

还有什么可以推荐的。我正在搜索(下载的内容)modsec 错误日志,它显示了很多我认为不适用于我的特定子帐户的内容。到目前为止,我还没有在其中找到对我的用户文件夹或“plivo”的引用。建议?

0 投票
0 回答
615 浏览

java - 使用 RestTemplate 下载本地主机导致 406

我正在测试通过以下方式从 localhost 下载文件restTemplate

这是我的测试:

在我的我WebConfig已经配置如下:MssageConvertersContentNegotiation

为什么我收到406错误?

我错过了什么吗?

org.springframework.web.client.HttpClientErrorException: 406 Not Acceptable

0 投票
2 回答
36801 浏览

angular - 在获取请求角度 2 上设置标头

我尝试将 Authorization 标头设置为 GET 请求,以向其余 API 验证用户身份。我正在使用 Angular 2 RC1。(我是一个完全的初学者)。

我在我的后端允许 CORS。

我的控制台:

选项 api/userProfile/

XMLHttpRequest 无法加载 /userProfile/。预检响应具有无效的 HTTP 状态代码 406

我的请求标头

任何想法 ?

0 投票
0 回答
821 浏览

json - Phoenix - JSON API 406 不可接受的响应

我开始了一个全新的 Phoenix 项目,并将JASerializer用于我的 JSON API。我按照文档了解要添加到我的项目中的内容,所以我有:

配置/config.esx

网络/路由器.ex

我使用了 JSON API 生成器:

我正在使用 Postman 来测试我的请求,这是我在向其中添加一些标头时看到的内容:

所以在我的 Phoenix 服务器控制台中,它正在输出:

[调试] ** (Phoenix.NotAcceptableError) 接受标头中不支持媒体类型,应为 ["json-api"] 之一

我尝试删除 _build 文件夹并重新编译似乎对某些人有用的插件,但不是我。

DID 的工作是plug JaSerializer.ContentTypeNegotiation在我的路由器中删除,但这似乎是我不应该删除的重要部分。

有没有人有任何想法?

这是我在 repo 上提交的问题的链接ja_serializer,可能会有所帮助:https ://github.com/AgilionApps/ja_serializer/issues/138#issuecomment-232998259

0 投票
1 回答
2876 浏览

html - open.connection(x,"rb") 中的错误:HTTP 错误 406

我正在尝试阅读read_html在 R 中使用的网站的内容。但是,对于某些网站,例如http://benchmarkrealestate.com/,我收到此错误。Error in open.connection(x,"rb") : HTTP error 406

这个错误是什么意思?这只发生在某些网站上。我试图在网上查找它,但无法找到我收到此错误的确切原因。

我该如何解决?

0 投票
2 回答
1046 浏览

angular - 发布请求有效,但放置请求不在角度 2

我向 Angular 2 中的 Rest API 发出 PUT 请求,但它不起作用。当我使用 POST 发出相同的请求时,它工作正常。

这是我的观点:

我的观点调用我的服务:

我的控制台:

我的标题(API):

当我在我的 API 中评论此代码时,我的 PUT 请求有效

有任何想法吗 ?