首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Laravel-5中发布ajax请求

在Laravel-5中发布ajax请求
EN

Stack Overflow用户
提问于 2015-09-15 09:37:15
回答 1查看 1.2K关注 0票数 0

我正试图在我的页面中发送一个ajax帖子请求,但是我在控制台中得到了一个错误。

代码语言:javascript
复制
POST http://local.bazaar.com/testimonials/submit 500 (Internal Server Error)

Routes.php

代码语言:javascript
复制
Route::post('/testimonials/submit','TestimonialsController@savetesti');

Ajax.js

代码语言:javascript
复制
$("#submitTestimonial").click(function() {
    $.ajax({
        url: '/testimonials/submit',
        method: 'POST',               
        success: function(data) {
            alert(data);
            die;
        }
    })

    return false;
});

TestimonialsController.php

代码语言:javascript
复制
<?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");
    }
}    
?>

视图页->

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-15 11:30:38

我认为问题在于csrf令牌。

当您执行post请求时,应该始终有一个csrf令牌。

如果您已经创建了一个带有照明/html外观的表单,那么它非常简单

代码语言:javascript
复制
{!! Form::open() !!}
{!! Form::close() !!}

如果您没有照明/html,请转到您的composer.json文件并添加

代码语言:javascript
复制
"illuminate/html": "~5.0", 

在一个又一个的要求块里。在运行composer更新并转到/config/app.php之后,您应该添加一个新的提供程序和别名

代码语言:javascript
复制
'providers' => [
    'Illuminate\Html\HtmlServiceProvider',
],

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

现在,在此表单中有一个带有crsf令牌的隐藏输入字段。

在您的javascript文件中,您可以使用类似的方法获得这段代码。

代码语言:javascript
复制
var data = {};
data._token = $('[name="_token"]').val();

然后用ajax post调用发送数据对象。

代码语言:javascript
复制
$.ajax({
    url: '/testimonials/submit',
    method: 'POST',   
    data: data,            
    success: function(data){
        alert(data);
    }
});

为了测试的目的,您可以更改您的功能。

代码语言:javascript
复制
public function savetesti()
{ 
    return 'success';
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32582643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档