Я использую логин Google Oauth с помощью Google Api's в Laravel 5.0. Я получаю данные в настоящее время в электронной почте пользователя, id_token, и теперь я хочу отправить эти данные контроллеру (SigninController) для вызова нашего собственного api и получить ответ обратно на передний конец (signin.blade.php) через Ajax запрос. Но мой запрос Ajax не работает. Здесь я прикрепляю коды.запрос ajax не работает для laravel 5.0
АяксаМой Signin.blade.php файла выглядит как (я включил CSRF заголовок):
$.ajax({
url: '/signin/oauth',
type:"POST",
data: data,
headers: { 'X-CSRF-Token' : token},
success:function(data){
console.log(data);
if(data){
console.log("Success nowwww for ajax expected data!");
// window.location.href = '{{url("/home")}}';
}
else{
console.log("Success ajax ! But not expected data!");
// window.location.href = '{{url("/signup")}}';
}
},error:function(){
alert("error!! ajax failure !!!!");
}
});
Мой routes.php выглядит как:
Route::post('/signin/oauth', [
'uses' => '[email protected]',
'as' => 'post_signin_oauth',
]);
В мои функции signinProcessOauth SigninController нормально " Request for Form "работает, но« Request-> ajax() «возможно, не работает. Это выглядит так:
.
.
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Session;
.
.
public function signinProcessOauth(Request $request)
{
$getData = $request->ajax();
if ($getData) {
$authCode = $request['authCode'];
$idToken = $request['idToken'];
$userEmail = $request['userEmail'];
// call the api here and send the above data to the server and process the response like saving the cookie etc
return $authCode; // return according to the response,this will return in ajax success function,right now it is authcode just for testing purpose
}
return "error";
}
Каждый раз, когда я запускаю код, я получаю сообщение об ошибке! Ajax failure !!!! " ответ, т. е. вызвана функция отказа ajax. Я не могу понять, где проблема? Или есть ли другой способ отправить данные из представления на контроллер и вернуть ответ на интерфейс?
Благодарим вас за то, что вы читали такой длинный пост терпеливо. :) :)
добавить аргументы ответа в свою 'error: function' и сообщить нам конкретное сообщение об ошибке ->' Функция (jqXHR jqXHR, String textStatus, String errorThrown) '- вам могут потребоваться дополнительные заголовки, такие как' Content -Type' – WhiteHat
@WhiteHat, Спасибо за ваш добрый совет. Я попробовал тип содержимого, используя: contentType: 'application/octet-stream; charset = utf-8 '. Но тщетно . Я попытался передать аргумент в функции ошибки и попытался напечатать его в консоли. В результате получается: ajax! !! [object Object]. И я проверил сеть в своем браузере, и он сказал: 500, внутренняя ошибка сервера. :(заголовки, содержимое все нормально, но запрос ajax использует «no cache». Может быть, проблема? –
Сначала проверьте ваш запрос ajax почтовым агентом или другим инструментом. – dipesh