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

这里的技术是共享的

You are here

laravel 怎么使用ajax 有大用

shiping1 的头像
laravel5刚好弄了一个,供参考。

1.建议新手至少先弄通golaravel上入门的文章(一)和(二),否则理解比较困难

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

2.前端js请求部分(注意那个header属性,是为了避免跨站伪造请求攻击写的)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$.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方法上处理)

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

控制器方法PollController.php,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?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://zhidao.baidu.com/link?url=QztzVQN28eoIBLPqrEVtnPzTa3javG43a_YchsOhoPnrYNnKKC_KxU5TUWekEGmcono...



laravel 怎么使用ajax

总是给报 Method not allowed

daniel

赞同来自: niesheng

laravel5刚好弄了一个,供参考。
建议新手至少先弄通golaravel上入门的文章(一)和(二),否则理解比较困难
  1. HTML blade部分
    <meta name="_token" content="{{ csrf_token() }}"/>
    
    
  2. 前端js请求部分(注意那个header属性,是为了避免跨站伪造请求攻击写的)
    $.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 {

        return Redirect::back()->withInput()->withErrors('保存失败!');

    }

}

}


大概如此,多指正~
在提交表单里增加如:<input name="_method" type="hidden" value="DELETE">的类似代码试一下

motecshine - 菜鸟

Route 下 GET和POST方法是要区分的
ajax一般是结合前端JS来实现,可以查阅我的开源项目示例:
yascmf
你的答案完美解决了我的疑惑!赞

赵狗胜 - 谢谢帮助过我的人!

$("#submit").click(function(){

    var token = $('#token').val();

    var oldpassword = $('#oldpassword').val();

    var newpassword = $('#newpassword').val();

    var newpassword2 = $('#newpassword2').val();

    //alert(token);

    //alert(oldpassword);

    //alert(newpassword);

    //alert(newpassword2);

    //alert('submit');

    $.post('{{ action('UserController@resetpasswordHandle') }}', 

            { '_token': token ,'oldpassword': oldpassword, 

            'newpassword': newpassword, 'newpassword2':newpassword2 },

               function(data){

                 alert("Data Loaded: " + data);

               });

});


500的主要是忘记传这个_token了

来自 http://wenda.golaravel.com/question/650

普通分类: