我試圖通過使用$ AngularJS做了Web 2.0 API調用不工作http.post返回JSON和怪異,因爲這可能聽起來,這一個小時前的工作,現在它不,我沒有改變一件事。該應用程序繼續在所有其他瀏覽器中工作,它只是在Edge中失敗。
var _login = function (loginData) {
var data = "";
var grant = [insert data to authorise user on server];
var deferred = $q.defer();
$http.post(serviceBase + 'token', data, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).success(function (response) {
_userlogin(response);
deferred.resolve(response);
}).error(function (err, status) {
console.log(err + " " + status);
_logOut();
deferred.reject(err);
});
return deferred.promise;
};
我不得不採取一些信息在那裏,因爲它的安全性信息,但功能應該是相同的,因此,從調試我知道,這是在應用程序絆倒。我也知道傳入的logindata是有效的,並且我在REST客戶端上嘗試了相同的調用,並且工作正常,就像我之前提到的在沒有任何其他主要瀏覽器(包括IE古怪)。
當該調用運行,前端角度進行以下操作:
$scope.authUser = function (username, password) {
var loginData = { userName: username, password: password, useRefreshTokens: login.useRefreshTokens}
authService.login(loginData).then(function (response) {
console.log(response);
sessionStorage.setItem("status", "User Logged In As: ");
sessionStorage.setItem("username", username);
global.template = "templates/dashboard.html";
login.password = "";
},
function (err) {
console.log(err);
login.message = err.error_description;
$("#passwordError").modal();
});
};
應用程序停止在login.message = err.error_description;
,因爲它沒有從API調用返回。錯誤是:網絡錯誤0x2efd,由於錯誤00002efd,無法完成操作。並且無法獲取未定義或空引用的屬性'error_description'。
編輯:忘了提 - 應用程序工作時提琴手是開放的,捕獲流量。這是最奇怪的部分。
從代碼中刪除所有'console.log'。有時候,它解決了IE問題。 – Mistalis
還沒有破 - 兩個錯誤是:無法獲取未定義或空引用的屬性'error_description'和網絡錯誤0x2efd,由於錯誤00002efd無法完成操作。 –
我不確定,但可能與您的標題有關的問題。只需將它們更改爲application/json並檢查(確保問題仍然存在)。在我的應用程序中,http現在可以正常工作。 – Vitalii