1

这是我的代码。

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

如果我手动点击浏览器中的网址,它可以工作。但是这个没有。这是一个 GET 请求。

4

1 回答 1

2

HTTP 状态码406意味着服务器无法返回符合Accept-标头的表示。从规格

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

有关更多答案,请参见此处:什么是 HTTP 中的“406-Not Acceptable Response”?

这很可能是元素设置的标头Accept。另一方面,浏览器(Chrome)默认发送请求application/jsoniron-ajax

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

*/*位匹配任何内容类型。

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

<iron-ajax headers='{"Accept": "*/*"}' handle-as="json"></iron-ajax>

同样,这*/*只是一个例子。您可能需要更具体的媒体类型。

于 2016-10-26T09:40:31.063 回答