我目前正在管理一个我没有开发的电子商务网站。开发人员选择这样做,以便当您查看项目时,单击“添加到购物车”按钮使用 jQuery 的“发布”方法通过 Ajax 将项目的 ID 和指定数量发布到“/items/ajax_add_to_cart”。
我从网站所有者那里得到了一份报告,有两三个客户说他们正在将商品添加到他们的购物车中,但他们的购物车似乎是空的。我调查并在 Apache 访问日志中发现了以下条目(IP 地址和 URL 已更改):
127.0.0.1 - - [19/Sep/2011:12:49:50 -0400] "GET /items/view/1234 HTTP/1.1" 200 12117 "http://www.example.com/items/search/[keyword]" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; WOW64; Trident/5.0)"
127.0.0.1 - - [19/Sep/2011:12:50:15 -0400] "POST /items/ajax_add_to_cart HTTP/1.1" 200 15 "http://www.example.com/items/view/1234" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; Trident/5.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; OfficeLiveConnector.1.5; OfficeLivePatch.1.3; .NET4.0C; BRI/1)"
127.0.0.1 - - [19/Sep/2011:12:50:16 -0400] "GET /items/view_cart HTTP/1.1" 200 10305 "http://www.example.com/items/view/1234" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; WOW64; Trident/5.0)"
请注意,当访问“/items/ajax_add_to_cart”页面时,用户代理字符串暗示 Internet Explorer 9 自动进入兼容性视图。这就解释了为什么购物车最终是空的。不过,我根本无法复制它。
关于为什么会发生这种情况的任何想法?我可能会添加<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
标签来修复它,但我希望能够首先重现该问题,以绝对确定发生了什么。