406(不可接受)iron-ajax

时间:2016-10-26 07:58:06

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

这是我的代码。

 <iron-ajax auto
                id="requestRepos"    
                url="myurl"
                params='{"mycommaseperatedparams"}'
                handle-as="json"
                on-response="handleResponse"></iron-ajax>

如果我手动点击broswer中的网址,它就可以了。但这个不是。 这是一个GET请求。

1 个答案:

答案 0 :(得分:2)

HTTP状态代码406表示服务器无法返回符合Accept-标头的表示。来自specs

  

请求标识的资源只能生成响应实体,这些响应实体的内容特征根据请求中发送的接受标头不可接受。

有关更多答案,请参阅此处:What is "406-Not Acceptable Response" in HTTP?

这很可能是由Accept元素设置为application/json的{​​{1}}标头。另一方面,浏览器(Chrome)默认使用

发送请求
iron-ajax

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 位匹配任何内容类型。

要解决此问题,您必须在服务器端工作以允许JSON响应。您也可以尝试显式设置标题,尽管我希望iron-ajax无论如何都会覆盖*/*标题

Accept

同样,<iron-ajax headers='{"Accept": "*/*"}' handle-as="json"></iron-ajax> 只是一个例子。您可能需要更具体的媒体类型。