質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

12466閲覧

クロスドメインでCookieをセットするには?

stack-overflow

総合スコア29

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

2グッド

1クリップ

投稿2017/01/25 09:30

お世話になります。
クロスドメインでCookieをセットする方法についての質問です。

CORS(XHR2)を使用すれば、クロスドメインでもCookieをセットできるという情報が多々見つかり、
試しているのですが、Safari(mac版/iOS版どちらも)のみCookieをセットできずに困っております。

下記コードで、クロスドメインでのAjax通信自体は行えているのですが、
Cookieをセットすることができません。

// http://exsample_a.com jQueryを使用 $.ajax({ type: 'POST', cache: false, url: 'http://exsample_b.com/set_cookie.php', data: { test : 'test_data' }, xhrFields: { withCredentials: true } });
// http://exsample_b.com header('Access-Control-Allow-Origin: http://exsample_a.com');//exsample_aの通信を許可 header('Access-Control-Allow-Credentials: true');//Cookieの使用を許可 setcookie('test', $_POST['test'], time()+3600);// cookieをセット

Safari以外では動作しているのですが、
Safariではセキュリティポリシーが厳しいのか、
Cookieの設定を「常に許可」にしなければ、XHR通信のリクエストヘッダーの段階でCookieが消えてしまっているようです。

CORSでCookieをセットできるという記事はたくさん見つかるのですが、
Safariでは動作しないなどの情報が見つけられず、
対策方法があれば対策方法を、無いのであれば、別の手段などの情報を教えていただけますと幸いです。

何卒、よろしくお願いいたします。

saitouakihiro, ynarish👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ヘッダーにAccess-Control-Allow-Headersを追加して試してみてください。

php

1header('Access-Control-Allow-Headers: "Origin,Authorization,Accept,X-Requested-With");

投稿2017/01/25 22:52

turbgraphics200

総合スコア4267

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

stack-overflow

2017/01/26 01:36

回答ありがとうございます! 頂いた情報を追加し、試してみましたが、 やはりSafariではCookieを送信してくれませんでした。 他にもなにか情報があれば、 再度、回答いただけますと幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問