我有下面的代码,它不希望在Chrome和Safari的工作问题:与谷歌Chrome和Safari在Mac OS jQuery的SESSION问题X 10.5只
function updateBasket(data) {
if (data != '') {
$.each(data, function(k, v) {
if (jQuery.inArray(k, data.remove) == -1 && $('.' + k).length > 0) {
$('.' + k).html(v);
}
});
}
}
$('.add_to_basket').live('click', function() {
var button = $(this);
var classes = $(this).attr("class");
var identity = $(this).attr("rel").split('_');
var url = '/basket/action/add/type/' + identity[0] + '/id/' + identity[1];
$.ajax({
type: 'POST',
url: url,
data: ({ cls : classes }),
dataType: 'json',
success: function(data) {
if (!data.error) {
updateBasket(data);
button.replaceWith(data.button);
}
}
});
return false;
});
的.add_to_basket只触发与第一次点击一起工作 - 之后它什么都不做。 它适用于Firefox和IE,但由于某些原因,Chrome和Safari似乎并不喜欢它。
下面是这是第一位的点击后的JSON响应:
{
"error": false,
"items": {
"27": {
"price": "120.00",
"qty": 1,
"discount": 0,
"vat": 0,
"price_vat": 120
}
},
"bundles": [],
"no_of_items": 1,
"sub_total": "£120.00",
"vat_total": "£0.00",
"total": "£120.00",
"remove": ["remove", "error", "button", "items", "basket"],
"button": "<a href=\"#\" class=\"button button_red add_to_basket\" rel=\"item_27\">Remove from the basket<\/a>"
}
和自带之后第二个一(返回到初始状态):
{
"error": false,
"items": [],
"bundles": [],
"no_of_items": 0,
"sub_total": "£0.00",
"vat_total": "£0.00",
"total": "£0.00",
"remove": ["remove", "error", "button", "items", "basket"],
"button": "<a href=\"#\" class=\"button button_blue add_to_basket\" rel=\"item_27\">Add to the basket<\/a>"
}
任何想法,我在这里做错了吗?
为了使它更困难 - 这是只有Chrome和Safari浏览器在Mac OSX 10.5(Leopard)的发生 - 但没有对雪豹 - 使用浏览器(Chrome浏览器11.0.696.71)
的版本相同只是一个更新 - 我做了一些测试,它似乎是SESSIONS的一个问题。它不允许我登录 - 这意味着在Mac OS X 10.5上使用Chrome或Safari时不会创建会话。
有什么想法?
每种情况下发送的是哪个网址?你能用调试器来观察整个请求和响应吗? – 2011-06-02 20:57:23
每次都有相同的网址 - 只是网址中的参数可能会有所不同。调试信息窗口是空的。 – user398341 2011-06-02 20:59:56
这种东西被发送错误或后端问题的味道。显然你正在得到回应。后端做错了什么?如果你从一个失败的案例复制/粘贴url到你的url栏,你会得到同样的结果吗? – 2011-06-02 21:05:37