Я разрабатываю приложение, требующее входа в систему, поэтому у меня есть контроллер, который размещает на сервере почту и пароль, вставленные в форму, и если логин успешно завершается печатью в $ scope.response строка "T"
и контроллер должен проверить, есть ли строка "T"
, а затем перенаправить пользователя на домашнюю страницу.как сделать логин в ионной с http сообщение?
это мой код:
ФОРМА HTML:
<form ng-submit="submit()">
<div class="list">
<label class="item item-input">
<span class="input-label">Email</span>
<input type="email" name="mail" ng-model="data.mail">
</label><br>
<label class="item item-input">
<span class="input-label">Password</span>
<input type="password" name="pwd" ng-model="data.pwd">
</label><br>
<input type="hidden" name="funzione" value="login" ng-model="data.funzione">
<input class="button button-calm" type="submit" name="submit" value="Login">
</div>
</form>
CONTROLLER:
.controller('LoginCtrl', function($scope, $http, $state) {
$scope.data = {};
$scope.submit = function(){
var link = 'http://localhost/ShuttleFIX/api.php';
$http.post(link, {mail : $scope.data.mail}, {pwd : $scope.data.pwd}, {funzione : $scope.data.funzione})
.then(function (res){
$scope.response = res.data;
if ($scope.response == "T"){
state.go('main');
}
});
};
});
API:
/*
* connection to DB
*/
if (isset($_SERVER['HTTP_ORIGIN'])) {
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400'); // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
exit(0);
}
$postdata = file_get_contents("php://input");
if (isset($postdata)) {
$request = json_decode($postdata);
$funzione = $request->funzione;
if ($funzione == "login") {
$mail = $request->mail;
$pwd = $request->pwd;
$query = "SELECT * FROM utente WHERE mail = '$mail' AND pwd = '$pwd'";
$res = mysql_query($query);
if ($res && mysql_num_rows($res) > 0) {
$response = "T";
echo $response;
}
}
но не работает.
Как я могу решить эту проблему?
Thank в
UPDATE:
Я получил эту ошибку из консоли: XMLHttpRequest cannot load http://localhost/<path>/api.php. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8100' is therefore not allowed access.
Спасибо, но теперь, кажется, это работает @Antonis – Edoardo
Я отредактировал мой ответ со ссылкой. Надеюсь, эта помощь. Также эта проблема появляется в браузере. Вы можете использовать chrome extension for cors https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi, чтобы решить эту проблему. – Antonis