2015-09-15 6 views
0

Я пытаюсь отправить запрос на отправку ajax на моей странице, но я получаю сообщение об ошибке в консоли.Проводка запроса ajax в Laravel-5

POST http://local.bazaar.com/testimonials/submit 500 (Internal Server Error) 

routes.php

Route::post('/testimonials/submit','[email protected]'); 

ajax.js

$("#submitTestimonial").click(function() { 
    $.ajax({ 
     url: '/testimonials/submit', 
     method: 'POST',    
     success: function(data) { 
      alert(data); 
      die; 
     } 
    }) 

    return false; 
}); 

TestimonialsController.php

<?php 
namespace App\Http\Controllers; 

use Input; 
use Request; 

class TestimonialsController extends Controller 
{ 
    /** 
    * Perform validations on user data 
    * Hash Password 
    * Create 
    * @return Response 
    */ 
    public function savetesti() 
    { 
     // Getting all post data 
     print_r("success"); 
    } 
}  
?> 

viewPage->

<div class="testimonialForm"> 
    <form action="#" method="POST"> 
     <div class="testimonialFormTitle">Write A Testimonials</div> 
     <a class="closeTestimonialBtn"></a> 
     <p><input type="text" placeholder="Your Name" id="tname" name="name" class="inputTxt placeholder"></p> 
     <p><input type="text" placeholder="Your Email" id="temail" name="email" class="inputTxt placeholder"></p> 
     <p><textarea placeholder="Testimonial" cols="50" rows="6" id="tmessage" name="message" class="inputTxtArea placeholder"></textarea></p> 
     <a class="greyBtn" id="submitTestimonial" href="#">Submit</a> 
    </form> 
</div> 
+0

Не print_r успеха. верни это. Подобно этому 'return 'sucess';' и в javascript нет никакого умирания. Где вы хотите представить свои данные? – aldrin27

+0

Я изменил его, но все же такое же сообщение об ошибке. – aniruddh

+0

Где можно представить свои формы? – aldrin27

ответ

1

Я думаю, что проблема заключается в токенах csrf.
Когда вы отправляете запрос, всегда должен быть токен csrf.

Если вы создали форму с Осветите/html фасада, то его довольно простой

{!! Form::open() !!} 
{!! Form::close() !!} 

Если вы не освещают/html перейти к файлу composer.json и добавить

"illuminate/html": "~5.0", 

В блоке require после laravel. После этого обновления запустить композитор и перейти к /config/app.php здесь вы должны добавить новый поставщик и псевдоним

'providers' => [ 
    'Illuminate\Html\HtmlServiceProvider', 
], 

'aliases' => [ 
    'Form' => 'Illuminate\Html\FormFacade', 
], 

Теперь в этой форме есть скрытый вход поле с маркером CRSF.
В файле javascript вы можете получить этот код с чем-то похожим.

var data = {}; 
data._token = $('[name="_token"]').val(); 

Затем отправить объект данных с Ajax после вызова

$.ajax({ 
    url: '/testimonials/submit', 
    method: 'POST', 
    data: data,    
    success: function(data){ 
     alert(data); 
    } 
}); 

И для целей тестирования можно изменить функцию

public function savetesti() 
{ 
    return 'success'; 
} 
+1

Спасибо, Сенис. Теперь его работа. – aniruddh

Смежные вопросы