2016-10-26 104 views
1

這是我的代碼。406(不可接受)iron-ajax

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

如果我手動打開了瀏覽器中的url,它就可以正常工作。但是這個不是。 這是一個GET請求。

回答

2

HTTP狀態碼406意味着服務器無法返回符合Accept-標頭的表示。從specs

該請求所標識的資源只能能夠產生具有根據在請求中發送的接受報頭,內容無法接收響應實體。

更多的答案在這裏看到:What is "406-Not Acceptable Response" in HTTP?

這是最有可能的Accept頭由iron-ajax元素設置爲application/json。在默認情況下另一方面的瀏覽器(Chrome)與

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

*/*位的任何內容類型相匹配發送請求。

要解決您將不得不在服務器端工作,以允許JSON響應。您也可以嘗試明確設置了頭,雖然我希望鐵AJAX覆蓋Accept頭反正

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

再次,*/*僅僅是一個例子。您可能需要更具體的媒體類型。

+0

你是一個拯救生命的人! 'headers ='{「Accept」:「*/*」}''解決了我的問題。謝謝TONN! –

+1

我也讀了解釋。現在我已經知道確切的原因。謝謝。 –