欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

laravel 怎么使用ajax 自己亲自做的 有大用 有大用

shiping1 的头像
好像jquery 版本要注意下 jquery.1.4.2 肯定不能用 否则的话 

headers: { 'X-CSRF-TOKEN': $("meta[name='_token']").attr('content') }, 不能用
 
  1. //HTML blade部分

    <meta name="_token" content="{{ csrf_token() }}"/>


  2. 前端js请求部分(注意那个header属性,是为了避免跨站伪造请求攻击写的)
    下面是自己亲自做的 有大用

            $.ajax({
                            type:"POST",
                            url: "/ajax/deleteuserfile",
                            cache: false,
                            headers: {
                                'X-CSRF-TOKEN': $("meta[name='_token']").attr('content')
                            },
                            dataType: 'json',
                            data: {'file_id':file_id,'id': '{{ $user->id  }}' },  
                            error: function(jqXhr){
                                if( jqXhr.status === 401 ) {  //如果没有权限的话 就执行这里
                                    alert('无权操作');
                                }
                                else if( jqXhr.status === 422 ) {  //记住如果验证错误的话 (比如 app/Http/Requests/ArticleRequest.php 验证错误)就执行这里
                                    var errors = jqXhr.responseJSON;
                                    var errStr = '';
                                    $.each( errors , function( key, value ) {
                                        errStr += value[0];
                                    });
                                    alert(errStr);
                                }
                            },
                            success: function(result)
                            {
                                if(result.status==1){
                                    $("[name='to_user_id']").val(result.to_user_id);
                                    $('#searcheduser').html('找到的用户为: '+result.email);
                                }
                               else if(result.status==2){
                                     alert('找到不止一个用户,请重新搜!');
                                    $("[name='to_user_id']").val('');
                                    $('#searcheduser').html('');
                                }
                               else {
                                     alert('没找到用户,请重新搜!');
                                     $("[name='to_user_id']").val('');
                                     $('#searcheduser').html('');
                               }
                            }
                        });

     

    $.ajax({
    type: 'POST',
    url: '/ajax/create',
    data: { date : '2015-03-12'},
    dataType: 'json',
    headers: {
    'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
    },
    success: function(data){
    console.log(data.status);
    },
    error: function(xhr, type){
    alert('Ajax error!')
    }
    });


  3. 路由部分route.php(ajax/create路由打到Controllers/Ajax/PollController.php的store方法上处理)

 

Route::group(['prefix' => 'ajax', 'namespace' => 'Ajax'], function(){
Route::post('create', 'PollController@store');
});


 

  1. 控制器方法PollController.php,

 

<?php namespace App\Http\Controllers\Ajax;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Poll;  // 用数据模型

use Redirect, Input, Auth, Log;

class PollController extends Controller {
public function store(Request $request)
{
    $poll = new Poll;

    $poll->date = Input::get('date');

    if ($poll->save()) {
        return response()->json(array(
            'status' => 1
            'msg' => 'ok',
        ));
    } else {
         //不过这一句好像不对 只有非 ajax提交 才能重定向吧
        return Redirect::back()->withInput()->withErrors('保存失败!');
    }
}
}



来自 http://my.oschina.net/u/2444569/blog/513668


普通分类: