Angularjs訴1.2.0rc3與PhoneGap的3.1和Django的休息框架
當發佈數據到我的API(登錄表單)我正在狀態200在angularjs中,無論是否使用適當的憑證進行身份驗證等。即使我只是在API視圖中返回HTTP_400,如下面的示例中所示,angularjs認爲這是一個HTTP_200狀態碼。 我確定後端API返回的HTTP_400在使用本地http服務器時工作正常。 我也可以通過調試api視圖來確認這一點。
下面是示例代碼。 Django的REST框架代碼:
class LoginView(APIView):
def post(self, request):
return Response({}, status=status.HTTP_400_BAD_REQUEST)
和我angularjs控制器:
$scope.login = function() {
$http.post(API_URL, $scope.loginUser).then(
function(response) {
console.log('STATUS : ' + response.status);
console.log('request OK');
},
function() {
console.log('request is NOT OK');
)};
據我知道的PhoneGap使用本地file://協議,所以應該沒有CORS 相關的問題?
當在Chrome瀏覽器上相同時,我得到原始文件://不被Access-Control-Allow-Origin允許使用。將--disable-web-security標誌添加到chrome啓動腳本可消除此問題,但它不能解決phonegap的「always 200 status code」問題。
測試在Android 2.3 &的PhoneGap 3.1 & angularjs 1.2.0rc3
看起來這是一個angularjs問題:https://github.com/angular/angular.js/issues/4436 – Robert
我有使用角1.2.0rc3和phonegap 3.1相同的問題。即使服務器在我的攔截器中返回狀態代碼401,它仍然顯示爲狀態200.同樣的問題仍然存在於1.2穩定中。 – ADmad
順便說一句,我沒有角1.2.0rc2這個問題,所以你可以請嘗試,並報告回來。 – ADmad