Angularjs v. 1.2.0rc3 与 phonegap 3.1 和 django-rest-framework
将数据发布到我的 API(登录表单)时,无论我是否使用正确的凭据等进行身份验证,我都会在 angularjs 中获得状态 200。即使我只是在 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 浏览器上相同时,我得到Origin file:// is not allowed by Access-Control-Allow-Origin。将 --disable-web-security 标志添加到 chrome 启动脚本可以消除此问题,但不能解决 phonegap 的“始终为 200 状态代码”。
在 android 2.3 & phonegap 3.1 & angularjs 1.2.0rc3 上测试