私はこのようなクッキーに関する問題を抱えています。レスポンスヘッダーのセットクッキーがブラウザで作成されていない - HTTP POSTを使用
私のシナリオはこれです:(:5555 localhostの)
私は私の角度2アプリが別のサーバ上で実行されている
- 私は、サーバー上の私のバックエンドを持っています私のバックエンドは単なるASP.NETアプリケーションで、私はapiControllerからユーザーを認証しようとしています。 APIコントローラは、このようなものです:今
[System.Web.Mvc.HttpPost] public HttpResponseMessage HandleLogin([FromBody] LoginModel loginModel) { if (!String.IsNullOrEmpty(loginModel.Username) && !String.IsNullOrEmpty(loginModel.Password)) { if (Members.Login(loginModel.Username, loginModel.Password)) { var resp = Request.CreateResponse<UserAuthenticationModel>( HttpStatusCode.OK, new UserAuthenticationModel() { IsAuthenticated = true} ); //create and set cookie in response var cookie = new CookieHeaderValue("customCookie", "cookieVal"); cookie.Expires = DateTimeOffset.Now.AddDays(1); cookie.Domain = Request.RequestUri.Host; cookie.Path = "/"; resp.Headers.AddCookies(new CookieHeaderValue[] { cookie }); return resp; } } return Request.CreateResponse<UserAuthenticationModel>( new UserAuthenticationModel() { IsAuthenticated = false } ); }
、私の角度のアプリから、私は、httpポストを呼び出しています:
headers.append( 'とAccess-Control-Allow-Credentials'、true)を、
return this._http.post(this._globalVariables.BACKEND_API_HANDLE_LOGIN, loginModel, {headers: headers}) .map((response : Response) => response);
this._loginService.getLoginModel() .subscribe( loginModel => this._signInPageModel = loginModel、 誤差=>にconsole.log(エラー) )。 私のapiコントローラメソッド(HandleLogin)では、テストCookieとFormsAuthentication用のCookieがあります。ユーザーが正常にログインして角型アプリケーションに戻ると、クッキーは作成されません。
さて、クッキーは私のレスポンスヘッダのポストとしてだけでなく見ることができます。
私はそれについて非常に混乱してるし、正常にログインプロセスを取得するために、任意の助けに感謝します。
ありがとうございます。
あなたの質問は何ですか? – AngJobs
あなたは問題を見つけることができましたか? –