鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

Mojoliciousで設定したCookieの値が、Backbone.jsからのajaxリクエストで設定されない?

なんか変だなぁ。Backbone.jsからCollectionのfetchメソッド を発行させて、ajax のrequestが発行されるところまでは確認できたんだけど。 クッキー(mojoliciousで設定している)に値が設定されてこない。

以下、証拠。

ドメイン指定なしの、root(/)に対してsetcookieされている。 http://localhost:3000ドメインの/myequipmentへのajaxリクエストでは 当然cookieが設定されるはずと思うんですが。 クッキーの届く範囲を再確認

f:id:kechiya:20131012044628p:plain

f:id:kechiya:20131012040747p:plain

jqueryajaxを調べても、特に何も設定しなくてもcookieに値は設定されると あるんですが、何が原因でこうなっているんだろうか? どうすればいいのだろうか?

stackoverflowさんを探してみた。 (最近はjavascriptで躓いたら、ほとんどstackoverflow使うな) やっぱり、ドメインが違うかパスが違うかしかないとのこと。 うーん。

How can I get backbone.js to send cookies when making model related rest calls? [closed]

<<追記>> 結局firefoxデバッグしたら、ちゃんとクッキーの値がわたっていた。 サーバー側のWeb.pmのコードでmyequipment#createとなっていますが、 MyEquipment.pmという名前でモジュール名を作っていたのがNGの原因でした。 Myequipment.pmとしたらChoromeのネットワークデバッグコードでも ちゃんとCookieの値がヘッダに設定されるように確認できました。 安易にクライアント側ばかり疑ったらいけないんだなと反省。

    $logged_in->post('/myequipment')->to('myequipment#create');