Я разрабатываю веб-сайты, где я использую AngularJS в интерфейсе и Laravel php framework в бэкэнд.
У меня есть одна простая форма, которая отправляет $ http.post вызов laravel backend и обрабатываются данные и отправляется по электронной почте.
Все работает нормально на моем локальном сервере Apache, но в Интернете на сервере веб-хостинга он возвращает 502 (ошибка шлюза) в консоли разработчика (см. Снимок экрана ниже).
Скриншот: http://s32.postimg.org/bwnxyps1x/502.jpg
И все же, когда появляется эта ошибка, скрипт в интерфейсе выполняется и электронная почта отослано. Это действительно странно.
В AngularJS У меня есть простой завод, который отправляет $ http.post позвонить ...
var sendForm = function sendForm($http) {
return {
sendForm: function($scope) {
return $http({
method: 'POST',
url: '/odeslat',
data: {titul: $scope.form.titul, jmeno: $scope.form.jmeno, prijmeni: $scope.form.prijmeni, email: $scope.form.email,
telefon: $scope.form.telefon, zprava: $scope.form.zprava, human: $scope.form.human}
});
}
}
};
module.exports = sendForm;
Это мой контроллер.
var formularCtrl = function formularCtrl($scope, sendForm) {
$scope.form = {};
$scope.form.human = 'Jsem člověk.';
var odeslano = false;
$scope.submitForm = function submitForm(isValid) {
$scope.showErrorMessage = false;
$scope.errorMessage = "";
if((isValid) && (!odeslano))
{
sendForm.sendForm($scope).success(function(data){
if (!data.success) {
// if not successful, bind errors to error variables
$scope.errorMessage = data.message;
$scope.showErrorMessage = true;
} else {
// if successful, bind success message to message
$scope.message = data.message;
$scope.showMessage = true;
odeslano = true;
}
});
}
else
{
$scope.showErrorMessage = true;
$scope.errorMessage = "Doplňte prosím všechny povinné údaje. ";
}
}
};
module.exports = formularCtrl;
И, наконец, это простой способ в контроллере laravel.
public function sendForm(Request $request) {
$v = Validator::make($request->all(), [
'jmeno' => 'required'
]);
if($v->passes()) {
$input = $request->all();
$this->sendMessage($input);
return response()->json(['success' => true, 'message' => 'Formulář byl odeslán. Jakmile to bude možné, budete kontaktováni.']);
}
elseif($v->fails())
{
$input = $request->all();
return response()->json(['success' => false, 'message' => 'Musíte doplnit povinné údaje']);
}
}
private function sendMessage($input)
{
Mail::send('emails.formular', $input, function($message)
{
$message->from(self::FROM, self::SUBJECT);
$message->to(self::TO);
});
}
Я не эксперт по AngularJS, и я действительно смущен этой ошибкой. Есть ли у вас какие-либо предложения - что может быть причиной?
спасибо! Все советы приветствуются.
Проверьте полный URL-адрес в сетевой вкладке с консоли разработчика и проверьте, является ли он правильным или нет. – Krunal
Описание ошибки 502 http://www.checkupdown.com/status/E502.html – Krunal