angularjs post 400(请求错误)
我正在尝试将cordova应用程序与angularjs、ionic框架和rest服务结合起来,用于用户登录和注册 这是连接到rest api的data.js的代码angularjs post 400(请求错误),angularjs,rest,ionic-framework,Angularjs,Rest,Ionic Framework,我正在尝试将cordova应用程序与angularjs、ionic框架和rest服务结合起来,用于用户登录和注册 这是连接到rest api的data.js的代码 app.factory("Data", ['$http', 'toaster', function ($http, toaster) { // This service connects to our REST API var serviceBase = 'http://blace.co/task_manager/v1/';
app.factory("Data", ['$http', 'toaster',
function ($http, toaster) { // This service connects to our REST API
var serviceBase = 'http://blace.co/task_manager/v1/';
var obj = {};
obj.toast = function (data) {
toaster.pop(data.status, "", data.message, 10000, 'trustedHtml');
}
obj.get = function (q) {
return $http.get(serviceBase + q).then(function (results) {
return results.data;
});
};
obj.post = function (q, object) {
console.log(object);
return $http.post(serviceBase + q, object).then(function (results) {
return results.data;
});
};
obj.put = function (q, object) {
return $http.put(serviceBase + q, object).then(function (results) {
return results.data;
});
};
obj.delete = function (q) {
return $http.delete(serviceBase + q).then(function (results) {
return results.data;
});
};
return obj;
}]);
这是我的控制器authCtrl.js的代码
app.controller('authCtrl', function ($scope, $rootScope, $routeParams, $location, $http, Data) {
//initially set those objects to null to avoid undefined error
$scope.login = {};
$scope.register = {};
$scope.doLogin = function (login) {
Data.post('login').then(function (results) {
Data.toast(results);
if (results.status == "success") {
$location.path('dashboard');
}
});
};
$scope.register = {};
$scope.Register = function (register) {
Data.post('register').then(function (results) {
Data.toast(results);
if (results.status == "success") {
$location.path('dashboard');
}
});
};
$scope.logout = function () {
Data.get('logout').then(function (results) {
Data.toast(results);
$location.path('login');
});
}
});
这是我的restapi的注册部分
$app->post('/register', function() use ($app) {
// check for required params
verifyRequiredParams(array('name', 'email', 'password'));
$response = array();
// reading post params
$name = $app->request->post('name');
$email = $app->request->post('email');
$password = $app->request->post('password');
// validating email address
validateEmail($email);
$db = new DbHandler();
$res = $db->createUser($name, $email, $password);
if ($res == USER_CREATED_SUCCESSFULLY) {
$response["error"] = false;
$response["message"] = "You are successfully registered";
} else if ($res == USER_CREATE_FAILED) {
$response["error"] = true;
$response["message"] = "Oops! An error occurred while registereing";
} else if ($res == USER_ALREADY_EXISTED) {
$response["error"] = true;
$response["message"] = "Sorry, this email already existed";
}
// echo json response
echoRespnse(201, $response);
});
RESTAPI工作得很好,我已经与高级rest客户端进行了检查
你可以在这里看到
在internet explorer中,我有此错误
错误的请求-由于无效语法,服务器无法处理该请求。(XHR):邮政
我认为问题在于
默认情况下,$http服务将通过将数据序列化为JSON,然后使用内容类型“application/JSON”发布来转换传出请求。当我们希望将值作为表单post发布时,我们需要更改序列化算法,并使用内容类型“application/x-www-FORM-urlencoded”发布数据
但我不知道如何实施这一点
任何想法都很感激!
多谢各位