雖然我確定這是一件顯而易見的事情,但我仍在用這個bug拉我的頭髮。道歉,如果是的話。瀏覽器不會從onclick事件中設置cookie
下面的JavaScript設置成功後我的cookie:
<script type="text/javascript">
$(document).ready(function(){
$.post('../setCookie.php',{'region':'test'});
});
</script>
但只要我扎相同的代碼到onclick
事件,像這樣......
<script type="text/javascript">
$(document).ready(function(){
$("#us a").click(function(){
$.post('../setCookie.php',{'region':'en-us'});
});
$("#uk a").click(function(){
$.post('../setCookie.php',{'region':'en-gb'});
});
});
</script>
<ul>
<li id="uk"><a href="http://www.example.com/uk">
<span>Enter UK site</span></a></li>
<li id="us"><a href="http://www.example.com/us">
<span>Enter US site</span></a></li>
</ul>
..它不再設置一個cookie!即使相同的代碼被稱爲中的執行完全一樣的方式(我一步步通過它,並看到它應該是一切)。
重複:JavaScript正在觸發罰款。我正在通過setCookie.php並且一切都是一樣的......除了在它的末尾沒有cookie。
發生了什麼事?我猜這是瀏覽器安全或什麼?
的人誰的興趣,這裏是我如何解決它:
<script type="text/javascript">
$(document).ready(function(){
$("#us a").click(function(e){
e.preventDefault();
$.post('../setCookie.php',{'region':'en-us'},
function() {
window.location = "http://www.example.com/us";
}
);
});
$("#uk a").click(function(e){
e.preventDefault();
$.post('../setCookie.php',{'region':'en-gb'},
function() {
window.location = "http://www.example.com/uk";
}
);
});
});
</script>
任何你使用ajax調用這個cookie的原因,而不是隻做'document.cookie = ...'? JS完全有能力自己設置Cookie,而不需要通過AJAX使用PHP。 – 2011-05-29 00:55:34
@Marc,我把它和我在項目中其他地方使用的類綁定在一起。我認爲,把它們放在一起會更加整潔。但否則,不。 – 2011-05-29 01:04:34
@Marc,$ _COOKIE []竟然有時間開火嗎? – 2011-05-29 01:11:02