を送信:実際には
c = &http.Cookie{
HttpOnly: false,
Name: "_cas_cookie",
Value: newSessionID(),
MaxAge: 86400,
}
http.SetCookie(w, c)
、私は、ブラウザの検査ツールを使用してそれを見ることができます。また、「通常の」ブラウザのクリックごとにリクエストヘッダにも含まれます。しかし、それは私が送信するすべてのajaxクエリに含まれていません。私はfetch()とjQueryの$ .ajax()と同じ結果を使用しました。設計上、バックエンドコードは古いものを受け取らない場合は同じ名前の新しいクッキーを生成します。それが起こります。その新しいクッキーは、将来のすべてのajaxクエリーで使用されます。これは、httpクッキーとJavascriptクッキーが別々のドメインに存在するかのようです。私は、HttpOnlyの設定をfalseに設定するとこの問題は解決すると思っていましたが、そうではありません。
ここにfetch()コードがあります。
function doGetFetch(url, callback){
fetch(
url,
{method: 'get',
credentials: 'same-origin'
})
.then(
function(response) {
if (response.status !== 200) {
console.log('Problem Status Code: ' +
response.status);
return false;
}
// Examine the text in the response
response.json().then(callback);
})
.catch(function(err) {
console.log('Fetch Error :-S', err);
});
}
ローカルホストテストサーバーを使用しても問題なく動作しますが、運用サーバーに展開すると問題が発生します。この2つの最大の違いは、ローカルホストがGolangの内部Webサーバー(i.G.、http.ListenAndServer())を使用し、プロダクションがCGIを使用することです。
お試しいただきありがとうございます。
これは相互ドメイン要求の問題の可能性があります。プロダクションCGIサーバーのJavascriptは、それがローカルホスト上にこのような問題がない別のドメインにあると考えているかもしれません。しかし、まだわからない。 – Brent