尽管我确信这是显而易见的事情,但我还是对这个错误感到恼火。如果是的话,抱歉。
以下 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>