Opera post(GET)是URL的哈希片段

时间:2011-04-26 14:07:49

标签: 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 /dagbok/food/上的.load()。

PS!发生500 Internal Server是因为路由不理解带有哈希片段的URI。也不应该。

使用RewriteRules进行更新:

  

重写发动机   RewriteCond%{REQUEST_FILENAME}!-d
  RewriteCond%{REQUEST_FILENAME}! - f
  RewriteRule!。(js | ico | txt | gif | jpg | png | css)$ index.php

然后,Index.php启动Zends前端控制器/路由器,无法找到此URI的任何路由。哪个是正确的,因为这个URI永远不会到达服务器。

1 个答案:

答案 0 :(得分:0)

我猜jQuery在发送XMLHttpRequest之前不会从URL中删除#hash部分,并依赖于浏览器这样做。快速测试显示Opera没有。 (这应该被认为是Opera中的一个错误 - 我认为没有任何标准涵盖这个确切的观点,但它没有做其他人可能做的事情。)