同じ $.ajax リクエストによって作成された 2 つのリクエストがありますが、1 つは Google Chrome からのもので、もう 1 つは PhoneGap アプリケーション上にあります。WebMatrix アプリケーションは、ユーザー名とパスワードの資格情報を送信したユーザーの ID を返す必要があります (PS: それはアプリケーションのポイントではありませんが、この質問のために単純化されています)。
ブラウザ ベースのリクエストは機能しますが、PhoneGap は機能しません。なぜなのかご存知ですか?Chrome リクエスト ヘッダーを含めましたが、完全な PhoneGap アプリケーションのヘッダーを手に入れることができません。
私はこれに対する回避策を見つけましたが、それが機能しないことに本当に悩まされています。
WebMatrix アプリケーション コード
if(IsPost){
var username = Request.Form["username"];
var password = Request.Form["password"];
var rememberMe = Request.Form["rememberMe"].AsBool();
var credentials = false;
if(!username.IsEmpty() && !password.IsEmpty()){
credentials = true;
}
if (credentials && WebSecurity.Login(username, password, rememberMe)) {
Response.Write(WebSecurity.CurrentUserId);
}
}
Google Chrome リクエスト ヘッダーの内訳 -
Accept:application/json, text/javascript, */*; q=0.01
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:105
Content-Type:application/x-www-form-urlencoded
Cookie:ASP.NET_SessionId=XXXXXXX
Host:xxxxxxxxxxx
Origin:file://
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19