私はAngularJSを使ってWebサイトを作成しています。これはサーバー上のAPIと通信し、Infoを提供します。 ログインするには、電子メール、パスワードなどを含むhttp投稿リクエストを送信する必要があります。Google ChromeとIEで正常に動作します。私はそれがポストリクエストを送信し、トークンを取得することを意味します。しかし、私がネットワークでチェックしたときにFireFoxでは、OPTIONリクエストを送信して200を取得しますが、その後はポストを送信しません!したがって、私のログインは消えず、私はトークンを手に入れません。AngularJSの投稿要求がFirefoxで正しく機能しない
この場合、どうすればよいですか?
App.configファイル:リクエストを送信するサービスで
$httpProvider.defaults.withCredentials = true;
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8;';
$httpProvider.interceptors.push('httpRequestInterceptor');
機能:
this.loginEmail = function(f_email, f_pass, deviceModel, deviceOs) {
var data = $.param({
email: f_email,
password: f_pass,
device_model: deviceModel,
device_os: deviceOs
});
return $http({
method: "POST",
url: app.baseUrl + 'login_email/' + app.storeID + '/' + app.device_id,
data: data
}).success(function(response){
return response.status;
});
/*return $http.post(app.baseUrl + 'login_email/' + app.storeID + '/' + app.device_id, data).success(function(response){
return response.status;
}).error(function(response){
return response.status;
});*/
};
サーバーの資格に該当する 私が要求
を得る行うことができますので、
EDIT:
:私はそれがトークンヘッダ を送信しますが、ポストのために、それはhttpRequestInterceptorないGETリクエストのためにログイン取得するときにChromeで : はここでは、この問題に関連している可能性があり、別のことです
app.factory('httpRequestInterceptor', function ($cookieStore) {
return {
request: function (config) {
config.headers['Authorization'] = $cookieStore.get('Auth-Key');;
config.headers['Accept'] = 'application/json;odata=verbose';
return config;
}
};
});
リクエストを妨害するブラウザの拡張子になる可能性があります。また、 'httpRequestInterceptor'とは何ですか? – Phil
@Philは編集時にhttpRequestInterceptorを追加しました – W1ldworm