问题标签 [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 投票
0 回答
2539 浏览

asp.net-mvc-3 - 是否可以将 IIS 7.x 默认可接受的 mime 类型列表更改为超过 application/json?

我正在开发一组 REST 服务,我们打算同时支持 JSON 和 BSON,可能还有 XML,作为返回数据的任何资源调用的返回类型。让 application/json 正常工作是很容易的,但是当托管在 IIS 7.x 中时,我们遇到了来自 IIS 本身的默认 406 错误,该错误指出只有 application/json 可以用于我们的路由。需要注意的是,我们的路由都是少扩展的,比如:

http://localhost/SomeEntity/12345

我们更愿意根据客户端 HTTP Accept 标头中指定的最喜欢的内容类型来序列化数据。如果指定了 text/xml 或 application/xml,我们将发送 xml。如果指定了 application/bson,我们将发送 BSON 等。最终,我们希望支持任何内容类型,如果需要,将来允许使用协议缓冲区或其他一些高速序列化方法。

有谁知道为什么 IIS 7 似乎将 application/json 硬编码为可以由无扩展资源 URL 返回的唯一可接受的内容类型?

我已经深入研究了服务器级别以及每个站点级别的 Mime Types 设置。我已经为. 扩展名,以及 .* 扩展名。似乎不可能简单地为 *. 老实说,我什至无法弄清楚 IIS 7 一开始是如何路由请求的。ExtensionlessUrlHandler-Integrated-4.0 似乎不是这样,因为它不允许 PUT 动词通过,但 PUT 动词可以正常工作。我不确定它是否可能通过模块,例如 UrlRoutingModule-4.0。我完全不知道 IIS 7 是如何处理 ASP.NET MVC 3 路由的,它们为什么工作,或者我可以在哪里配置允许无扩展请求的内容类型。我宁愿允许/,而不是仅限于任何显式的 mime 类型集,但是如果需要显式集,如果我能做到这一点,我会很乐意这样做。


例子:

请求
GET http://some.host.com/Resource/1234 HTTP/1.1
主机:internalinterop-course-resources.ecollege-labs.com
接受:application/json

GET http://some.host.com/Resource/1234 HTTP/1.1
主机:internalinterop-course-resources.ecollege-labs.com

响应
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: application/json; charset=utf-8
服务器:Microsoft-IIS/7.5
X-AspNetMvc-Version:3.0
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
日期:2012 年 2 月 29 日星期三 23:34:38 GMT
内容长度:??

{"消息":"yadda yadda"}


请求
GET http://some.host.com/Resource/1234 HTTP/1.1
主机:internalinterop-course-resources.ecollege-labs.com
接受:application/xml

回复

0 投票
1 回答
2632 浏览

http-status-code-406 - 在此服务器上找不到请求资源 /page.php 的适当表示

在我网站的一个页面中,我有一个如下链接:

当我单击链接时,我收到以下错误:

这是我通过 Live HTTP 标头捕获的标头信息:
在此处输入图像描述

编辑:
这真的很奇怪,因为当我将参数值从 selectquiz 转换为:
selectq selectqu ... selectquiz

它不起作用,但是当我键入时selec它就可以了!(在所有浏览器中)

0 投票
3 回答
2590 浏览

spring-mvc - @ResponseBody 返回类型;接受标头的 406 错误

我正在使用 Spring MVC

在我的配置文件中。

我的控制器方法是

使用jre1.7

仍然收到接受标头的 HTTP 状态 406 错误..

0 投票
1 回答
595 浏览

javascript - 什么可能导致相同的 .json 通话后出现 406?

我正在使用一个使用拖放功能的重型基于 javascript 的应用程序。

它运作良好。但是,如果我向页面添加一个动态对象(它具有与其他对象完全相同的属性和变量),它会拖动,但在放置时,POST 返回 406。

我完全不确定这里会发生什么,因为我重新实例化了在进行此调用之前可能需要的任何环境侦听器。我已经分解了对这个的调用:

.cranbar一个工作的预先存在的对象在哪里。我用一个动态添加的相同切换它.foobar,它返回一个 406。

这个片段来自make_droppable在对象实例化之后和我尝试拖放它之前加载的方法。

有谁知道我可以做些什么来找到这个406的来源?

更新

这可能与它有很大关系。但我现在正在比较标题。

失败的帖子:

成功发帖:

0 投票
6 回答
37447 浏览

spring - Spring REST 消耗导致 HTTP 状态 406 - 不可接受

当我尝试使用 REST API 时出现此错误:

这是执行的客户端代码:

这是映射请求的控制器的代码:

尽管映射器应该负责映射到正确的类型,但为什么会发生此错误(406-Not Acceptable)?

0 投票
2 回答
3563 浏览

http - “客户请求的格式错误”的哪个状态码?

哪个 HTTP 状态代码最适合用于“客户端请求的格式错误”,例如客户端请求format=json并且数据仅作为 XML 可用?我倾向于使用 406,但这指的是Acceptheders,而格式在我的用例的查询字符串中作为参数给出。

无论如何,406 是正确的代码吗?

谢谢

0 投票
2 回答
476 浏览

javascript - 没有php代理的跨域

页面中,我使用 Javascript 嵌入了谷歌地图,并从加载到我的域中的静态 KML 文件加载数据。我想从存储在谷歌服务器(网络链接)上的动态 KML 文件中改进我的地图加载数据,但是由于跨域限制,这不能直接完成。我尝试使用 php 代理,但我的托管服务不允许这样做。(不要问我为什么,我收到 ERROR 406 响应,客服说这种请求被他们的过滤器阻止了!)

那么,如何在没有代理的情况下进行跨域呢?

这是提供 kml 文件的链接:http ://maps.google.com/maps/ms?authuser=0&vps=2&hl=en&ie=UTF8&lr=lang_en|lang_fr|lang_it&oe=UTF8&msa=0&msid=201512616711333791415.0004c56e9ca3fb71ba551&output=kml

谢谢!

0 投票
1 回答
562 浏览

ruby-on-rails - Rails,设计邀请 406 STI 出现不可接受的错误

有类似的问题,但我已经研究过了,但没有一个申请过。

我正在使用设计设计邀请。导轨 3.2.6。

棘手的是我有两个用户模型。用户和艺术家从用户继承的单表继承设置。我有两个邀请控制器允许分别向用户和艺术家发送邀请。

现在的问题是艺术家无法接受他们的邀请。在提交更新密码的表单后,他们会收到 406 不可接受的错误。

相关代码:

路由:

艺术家邀请控制器

表格说明。编辑.html.erb。

接受标头

退货

我可以看到格式中的某些内容必须关闭,因为在该 .user 末尾添加了响应。我终其一生都看不到这种情况发生的原因或地点。如果我遗漏了任何可以提供帮助的信息,请告诉我。

0 投票
0 回答
387 浏览

javascript - XSS 406 Not Acceptable 试图获取多页信息

我的学校目前有一个网站,上面有我们的课程。我一直在尝试通过请求其他页面上的其他信息并通过 chrome 扩展将它们放在侧栏上来改进它在主页上显示的一些信息。尝试查看此信息时,我必须登录,它是 HTTPS。但是我可以从另一个页面中提取成绩。但是当我尝试提取作业时,它最终会发回GET 406 Not Acceptable Error

现在根据我的理解,如果我已经登录,我不需要进行身份验证或使用 api。我可能错了,但这就是我在这里的原因。为什么我会收到 406 错误?

0 投票
1 回答
505 浏览

http - : 导致 406 不可接受

406 Not Acceptable上车:

但不在:

唯一的区别是:

我该如何解决?