Cookieの仕様により、これは許可されていません(ajax呼び出しの同一生成元ポリシーと同じ原則)。SOPに関する限り、file:///からjavascriptを実行している場合(たとえば、UIWebView内)には適用されません。これは十分に文書化されており、私の例でも機能しています。クッキーはどうですか?
私は、すべての意図と目的のために、ローカルで実行されているjavascriptを介してサーバーにリクエストを行うアプリを持っています(file:///)。認証要求は、名前が「alpha」、パスが「/」、ドメインが「serverdomain.com」のCookieを設定します。ログアウト中に前述のCookieをクリアする必要がありますが、別のドメインからのものと見なされるため、アクセスできないため、試行が失敗したように感じます。おなじみですか?それとも私はここから離れていますか?そのような偉業を達成する方法はありますか?
例
ChromeでJavaScriptを実行しています(URIとしてfile:///を使用)。ログインを開始すると、すぐにCookie Managerプラグインに次のCookieが表示されます(これは実際のCookieではありませんが、「alpha」と言える名前を除いて同じように見えます)。Cookieはhttpのみとマークされていませんが、[セッション]および[セキュリティで保護された]チェックボックスがオンになっています(下のスクリーンショットとは異なります)。
Chromeの「要素の検査」機能を使用して「Cookie」に移動すると、「このサイトにはCookieがありません」というメッセージが表示されることに注意してください。
ログオフ中に、そのCookieを削除する必要があります。だから私はjavascriptでこれを行います:
document.cookie="alpha=; expires=Thu, 10 May 2000 15:07:07 GMT"
クッキーは消えません。私がそれをなくすことができる唯一の方法は、クッキーマネージャーからそれを削除することです。このCookieを(file:///から実行中に)削除できるようにする必要がありますか?もしそうなら、どのように?