2013-03-13 1 views
12

で働いていない:Chromeでクッキー用のJavaScriptコードは、次のコードは、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=/"; 

でもありません。 Chromeを使用していて、コンソールでdocument.cookieを実行してクッキーを表示すると、c_odiのクッキーは表示されません。しかし、FFで同じことをすると、それはそうです。 ChromeでCookieを動作させるにはどうすればよいですか? PHPによって追加されたクッキーは、JavaScriptではこれではなく、うまくいきます。この時点で、このクッキーをJavaScript経由で追加する必要があります。この行を置き換えるために

答えて

0

試してみてください。これで

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

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

あなたが値を読み取るしようとすると、unescapeを使用する必要がありますが、時間が来るとき、あなたはメナージュます: )

+0

ですが、 'orderdetailid'値は整数に過ぎません。 – user961627

+0

まあまあです:) ChromeブラウザでCookieを有効にしていますか? – sbgoran

+0

私は... PHPクッキーが動作しています。 – user961627

0

私のために働いているようです:

enter image description here

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

あなたが見ることができるように、少なくともクッキーは、開発ツールに表示されます。しかし、私はjQueryセレクタ$('#orderdetailid').val()を定数値で置き換えました。その値に何か問題があるのでしょうか、それともその値を含む要素がありますか?

+0

これはChrome 25でもうまく動作することを確認しました。 '$( 'orderdetailid').val()'を 'undefined 'にしても、それでも動作します。 – Chad

+0

奇妙ですが、Chromeでクッキーはどのようにアクセスされますか? 「Console」(リソースではなく)の最後のオプションである「Console」に移動すると、document.cookieと入力するとクッキーは表示されません。私はあなたが私にリンクしているバイブルと同じことをしましたが、 'Cookies> fiddle.jshell.net'の下には' document.cookie'にはありません。コンソールに次のように入力してみてください。 'alert(document.cookie);' – user961627

+0

これはおそらくクロスサイトの問題です。 JSFiddleの例では、cookieを設定するスクリプトはfiddle.jsshell.netからロードされます。したがって、このドメインに対してもCookieが設定されます。開発コンソールにdocument.cookieと入力すると、ドメインjsfiddle.netのCookieしか表示されません。これもあなたのシナリオの問題かもしれませんか?私。 Cookieを作成するスクリプトのドメインと、使用する/読み込むドメインは同じでなければなりません。 –

40

http:// localhost/xxx.htmlの代わりにfile:///C:/.../xxx.htmlとしてコードを開く場合、この問題が発生することがあります。 file://の場合、ChromeはCookieを保存しません(ドメインがなく、http通信がないため)。関心の

いくつかのリンク:

+0

IEとEdgeがドメインとhttp通信でCookieを保存する必要があるのはなぜですか。 –

+0

@ds_secret:これをIE8でテストしたところ、Chromeと同じように動作しました。 "file://"ではクッキーを保存しませんでしたが、 "http://"は実行しました。一方、FFはこれに対していくつかの回避策を持っているようですが、 "file://"上にさえクッキーを保存します。 –

+0

私の "クライアント"のほとんどがEdge、IE、FirefoxではなくChromeを使用しているので、これを回避する方法はありますか? –

0

あなたのアドレスバーのURLがドメインと一致していることを確認します。 Chromeでは、domain = www.site.comを設定し、ブラウザでページをテストしてwwwを見つけられない場合。それは動作しません。

0

Chromeは、ローカルファイルシステムから読み込まれたページのCookieを保存しません。たとえば、ローカルファイルシステム(例:file:/// C:/Users/deepak.r/Desktop/test.html)からクロムブラウザのHTMLファイルにアクセスする場合、Cookieはサポートされません。

+0

これは非常に弱い答えです。 –

関連する問題