我正试图在我的页面中发送一个ajax帖子请求,但是我在控制台中得到了一个错误。
POST http://local.bazaar.com/testimonials/submit 500 (Internal Server Error)Routes.php
Route::post('/testimonials/submit','TestimonialsController@savetesti');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");
}
}
?>视图页->
<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>发布于 2015-09-15 11:30:38
我认为问题在于csrf令牌。
当您执行post请求时,应该始终有一个csrf令牌。
如果您已经创建了一个带有照明/html外观的表单,那么它非常简单
{!! Form::open() !!}
{!! Form::close() !!}如果您没有照明/html,请转到您的composer.json文件并添加
"illuminate/html": "~5.0", 在一个又一个的要求块里。在运行composer更新并转到/config/app.php之后,您应该添加一个新的提供程序和别名
'providers' => [
'Illuminate\Html\HtmlServiceProvider',
],
'aliases' => [
'Form' => 'Illuminate\Html\FormFacade',
],现在,在此表单中有一个带有crsf令牌的隐藏输入字段。
在您的javascript文件中,您可以使用类似的方法获得这段代码。
var data = {};
data._token = $('[name="_token"]').val();然后用ajax post调用发送数据对象。
$.ajax({
url: '/testimonials/submit',
method: 'POST',
data: data,
success: function(data){
alert(data);
}
});为了测试的目的,您可以更改您的功能。
public function savetesti()
{
return 'success';
}https://stackoverflow.com/questions/32582643
复制相似问题