Heim >Backend-Entwicklung >PHP-Tutorial >HTTP 请求406如何解决?有截图

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

WBOY
WBOYOriginal
2016-06-06 20:39:332501Durchsuche

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?

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn