And*_*eth 5 javascript apache opera
根据Apache访问日志中的这一行,似乎Opera有时会在发送到服务器的URI中包含哈希片段:
[26/Apr/2011:01:09:03 +0200]"GET/dagbok/#type = food HTTP/1.1"500 - " - ""Opera/9.80(Windows NT 6.1; U; nb)Presto/2.8. 131版/ 11.10"
关于它为什么这样做的经验或见解?
URI应该被jQuery的哈希更改事件捕获,而事件又会触发URI上的.load()/dagbok/food/.
PS!500 Internal Server发生这种情况是因为路由不理解带有哈希片段的URI.也不应该.
使用RewriteRules更新:
RewriteEng在
RewriteCond%{REQUEST_FILENAME}!-d
RewriteCond%{REQUEST_FILENAME}!-f
RewriteRule!.(js | ico | txt | gif | jpg | png | css)$ index.php
然后Index.php启动Zends前端控制器/路由器,它无法找到此URI的任何路由.这是正确的,因为这个URI永远不会到达服务器.
我猜想 jQuery 在发送 XMLHttpRequest 之前不会从 URL 中删除 #hash 部分,并且依赖于浏览器这样做。快速测试表明 Opera 没有。(这可能应该被认为是 Opera 中的一个错误 - 我认为没有任何标准涵盖了这一点,但它并没有做大多数其他人可能做的事情。)
| 归档时间: |
|
| 查看次数: |
236 次 |
| 最近记录: |