У меня есть угловое js-приложение, которое пытается войти в систему и отправляет $ _REQUEST ['email'] и $ _REQUEST ['password'] в мой PHP-скрипт, но скрипт сообщает о неопределенном индексе: электронная почта, а такжеНеопределенный индекс: пароль.
Я попытался просто вставить 'email' и 'password' прямо, без разбора с угла, и это не работает;Я также попытался отправить письмо и пароль от простого старого запроса ajax в jQuery к сценарию, и это работает, я получаю токен обратно;это просто не работает с угла или не реагирует.
html:
<form>
<p><span class="sr-only"><label for="email">Email</label></span><input class="form-control" type="text" class="txt" placeholder="Email" ng-model="user.email" name="email" id="email"></p>
<p><span class="sr-only"><label for="password">Password</label></span><input class="form-control" type="password" class="txt" placeholder="Password" ng-model="user.password" name="password" id="password"></p>
<p><input type="submit" id="_submit" value="Login" class="btn-info" ng-click="login(user)"/></p>
</form>
угловой сценарий входа в систему:
$scope.login = function(user) {
$scope.showError = false;
$scope.showValidationError = false;
$scope.showRateError = false;
$scope.showNoUserError = false;
if(angular.isUndefined(user)) {
$scope.showValidationError = true;
$state.go('login');
}
$http.post("https://myapi.com/login", { email: user.email, password: user.password })
.then(function (result) {
$state.go('dash');
}, function(error) {
if(error.status == 401) {
$scope.showError = true;
}
if(error.status == 403) {
$scope.showRateError = true;
}
if(error.status == 422) {
$scope.showValidationError = true;
}
if(error.status == 500) {
$scope.showInternalError = true;
}
console.log("login: " + error.status + " " + error.statusText);
});
}
Когда сценарий попадает в тире, он пытается обновить, и я получаю эту ошибку:
Error: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': 'Bearer
Notice: Undefined index: email in /var/www/html/script.php on line 713
Notice: Undefined index: password in /var/www/html/script.php on line 714
Я пытался установить CORS как в своем php-скрипте, так и в Apache
В верхней части script.php:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Origin, Content-Type, Authorization');
В части конфигурации vhost:
<Directory /var/www/html>
Header set Access-Control-Allow-Origin "*"
</Directory>
Если я отправляю запрос из jQuery, он работает нормально:
$(document).ready(function() {
$("#login").click(function() {
var email = $("#email").val();
var password = $("#password").val();
var formData = {email: email, password: password};
$.ajax({
url: "https://myapi.com/login",
type: "POST",
data: formData,
success: function(data, textStatus, jqXHR)
{
console.log(textStatus);
console.log(data);
if(data != "") {
var data = JSON.parse(data);
console.log(data.token);
$("#token").html(data.token);
}
},
error: function(jqXHR, textStatus, errorThrown)
{
console.log(textStatus);
console.log(errorThrown);
}
});
});
});
Не знаю, какие другие действия по устранению неполадок сделать здесь.Любая помощь приветствуется.