首頁 >後端開發 >php教程 >HTTP 请求406如何解决?有截图

HTTP 请求406如何解决?有截图

WBOY
WBOY原創
2016-06-06 20:39:332507瀏覽

HTTP 请求406如何解决?有截图

<code>
Remote Address:223.4.156.22:80
Request URL:http://www.die.com/data/misc/region_data.js
Request Method:GET
Status Code:406 Not Acceptable
Request Headersview source
Accept:text/javascript, application/javascript
Accept-Encoding:gzip, deflate, sdch
Accept-Language:zh-CN,zh;q=0.8
Connection:keep-alive
Cookie:s=76c4209248040f971033f6a755a837c8; MLV=1; CUR=CNY; S[MEMBER]=47; vary=7c1b8c502101e09089c008d38da3ad3f4c56de2d50fe6d8b08a206b17a6436ce; Hm_lvt_ea7ddf915b0403f14eb1517f294548a8=1420108845; Hm_lpvt_ea7ddf915b0403f14eb1517f294548a8=1420112503; _ga=GA1.2.1202397504.1420108845; _gat=1; source=null; S[CART_COUNT]=1; S[CART_NUMBER]=1; S[CART_TOTAL_PRICE]=%EF%BF%A5219.00
Host:www.dijoncake.com
RA-Sid:3CC2F472-20141209-011155-3fbd59-3b026e
RA-Ver:2.8.6
Referer:http://www.dijoncake.com/index.php/wap/cart-shipping_edit-true.html
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
X-Requested-With:XMLHttpRequest
Response Headersview source
Content-Length:1313
Content-Type:text/html
Date:Thu, 01 Jan 2015 11:41:23 GMT
Server:Microsoft-IIS/6.0
X-Powered-By:ASP.NET
X-UA-Compatible:IE=EmulateIE7</code>

回复内容:

HTTP 请求406如何解决?有截图

<code>
Remote Address:223.4.156.22:80
Request URL:http://www.die.com/data/misc/region_data.js
Request Method:GET
Status Code:406 Not Acceptable
Request Headersview source
Accept:text/javascript, application/javascript
Accept-Encoding:gzip, deflate, sdch
Accept-Language:zh-CN,zh;q=0.8
Connection:keep-alive
Cookie:s=76c4209248040f971033f6a755a837c8; MLV=1; CUR=CNY; S[MEMBER]=47; vary=7c1b8c502101e09089c008d38da3ad3f4c56de2d50fe6d8b08a206b17a6436ce; Hm_lvt_ea7ddf915b0403f14eb1517f294548a8=1420108845; Hm_lpvt_ea7ddf915b0403f14eb1517f294548a8=1420112503; _ga=GA1.2.1202397504.1420108845; _gat=1; source=null; S[CART_COUNT]=1; S[CART_NUMBER]=1; S[CART_TOTAL_PRICE]=%EF%BF%A5219.00
Host:www.dijoncake.com
RA-Sid:3CC2F472-20141209-011155-3fbd59-3b026e
RA-Ver:2.8.6
Referer:http://www.dijoncake.com/index.php/wap/cart-shipping_edit-true.html
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36
X-Requested-With:XMLHttpRequest
Response Headersview source
Content-Length:1313
Content-Type:text/html
Date:Thu, 01 Jan 2015 11:41:23 GMT
Server:Microsoft-IIS/6.0
X-Powered-By:ASP.NET
X-UA-Compatible:IE=EmulateIE7</code>

如@yjl所猜测,在IIS中,默认情况下,js对应的MIME type 确实是application/x-javascript
参考:http://msdn.microsoft.com/en-us/library/bb742440.aspx,在页面中搜索javascript

解决办法有两个。

  1. 将请求的Accpet字段中加一个application/x-javascript(我测试通过)。
  2. 在IIS中给js添加text/javascript这个MIME type。(Configure MIME Types IIS 6.0)

这是不支持当前请求中的Accept Headers,题主检查一下是否限制了或者不支持以下MIME type、encoding算法、locale。

<code>Accept:text/javascript, application/javascript
Accept-Encoding:gzip, deflate, sdch
Accept-Language:zh-CN,zh;q=0.8
</code>

我觉得可能是限制了MIME type,限制Accept Headers的方式很多,具体操作还要看具体情况。

如Kavlez指出的,406的话,问题一般出在Accept, Accept-Charset, Accept-
Encoding, Accept-Language headers 这几个Header。

对于你的情况,应该是Accept:text/javascript, application/javascript的问题。可能server端用的是“application/x-javascript”,所以有406。你可以试着用Firefox/Chrome的REST Client插件,把你的Request的内容贴进去,然后把Accept:text/javascript, application/javascript替换成Accept:*/* (接受任何content types,BTW,这个type不指MIME type),然后试试发送,应该会返回200OK。

可能是文件权限的问题,用的是nginx?

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn