JavaScript code for cookie not working in Chrome

不想你离开。 提交于 2019-12-30 03:56:08

问题


The following code works fine in FF:

var date = new Date();
date.setTime(date.getTime() + (1 * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toGMTString();
document.cookie = "c_odi" + "=" + $('#orderdetailid').val() + expires + "; path=/";

But not in Chrome. When I'm using Chrome and I do document.cookie in the console to view cookies, the c_odi cookie isn't there. But when I do the same in FF, it is. How can we make cookies work in Chrome? The cookies that were added by PHP are fine, but not this one in JavaScript, and I do need to add this cookie via JavaScript at this point.


回答1:


This problem can occur if You open Your code as file:///C:/.../xxx.html instead of http:// localhost/xxx.html. Chrome doesn't save cookies (because there is no domain and no http communication) in file:// case.

Few links of interest:

  • https://gist.github.com/shellscape/02d3a97031e7afdf99d2642f93d59486
  • Setting Cookies using JavaScript in a local html file
  • https://bugzilla.mozilla.org/show_bug.cgi?id=536650
  • https://datatables.net/forums/discussion/46255/save-state-to-cookie-in-file-protocol



回答2:


Try to replace this line:

document.cookie = "c_odi" + "=" + $('#orderdetailid').val() + expires + "; path=/";

with this one:

document.cookie = "c_odi" + "=" + escape($('#orderdetailid').val()) + expires + "; path=/";

You would have to use unescape when you try to read value, but you'll menage when time comes :)




回答3:


Seems like it's working for me:

http://jsfiddle.net/rQEnF/3/

At least the cookie shows up in dev tools, as you can see. However, I replaced the jQuery selector $('#orderdetailid').val() with a constant value, as you can see. Is there something wrong with that value or the element containing the value maybe?




回答4:


Make sure your address bar url matches the domain. In Chrome if you set domain=www.site.com and then test your page in the browser missing out the www. it won't work.




回答5:


Chrome doesn’t store cookies from the pages which are loaded from local file system. For example if you are accessing a HTML file in chrome browser from local file system(ex: file:///C:/Users/deepak.r/Desktop/test.html), cookies are not supported.



来源:https://stackoverflow.com/questions/15385641/javascript-code-for-cookie-not-working-in-chrome

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!