在406 Not Acceptable回复中:
服务器应该生成一个包含可用列表的有效负载 表示特征和相应的资源标识符 用户或用户代理可以从中选择最合适的用户。 用户代理可以自动从中选择最合适的选择 那份清单。但是,该规范没有定义任何标准 用于这种自动选择,如RFC7231第6.4.1节中所述。
“可用的代表性特征列表和相应的资源标识符”是否有首选格式?
我可以发送回复:
application/json,application/pdf
但是我假设406有效负载的默认Content-Type(在这种情况下是JSON)。
或者我应该发送一个非常简单的,几乎格式的,有效载荷如下:
<form name="validationform" ng-submit="submit()">
<input type="text" name="value1" ng-model="textinputvalue" ng-required>
<input type="submit" id="submit" value="Submit" />
</form>
答案 0 :(得分:2)
&#34;可用的表示特征和相应的资源标识符列表是否有首选格式&#34; ?
这种有效载荷没有标准。
您可以选择用户代理可以轻松解析的任何格式。在实践中,JSON或文本都应该没问题:
{ "acceptable" : [ "application/json", "application/pdf" ] }
application/json,application/pdf
请参阅6.4.1 RFC 7231部分中的以下引文,该部分在406
状态代码定义中引用:
来自Mozilla的MDN Web Docs建议following:[...]自动选择的特定格式未定义 此规范因为HTTP试图保持与之正交 其有效载荷的定义。在实践中,表示是 提供一些易于解析的格式,被认为是可以接受的 用户代理,由共享设计或内容确定 谈判,或以一些普遍接受的超文本格式。 [...]
[...]实际上,很少使用此错误:服务器忽略相关标头并提供实际页面,而不是使用此错误代码进行响应,这对最终用户来说很神秘并且难以修复用户。假设即使用户不会完全满意,他们也会更喜欢这个错误代码。 [...]