如何将数据发送到路由使用vue.js 2上的get方法?

时间:2017-02-12 01:36:15

标签: javascript laravel vue.js laravel-5.3 vuejs2

我的ajax是这样的:

<script>
    new Vue({
        ...
        methods: {
            fetchItems: function (page) {
                var data = {page: page};
                this.$http.get('api/items', data).then(function (response) {
                    console.log(JSON.stringify(response))
                    this.$set(this, 'items', response.data.data.data);
                    this.$set(this, 'pagination', response.data.pagination);
                }, function (error) {
                    // handle error
                });
            },
            ...
        }
    });
</script>

我的路线是这样的:

Route::get('/api/items/', function () {
    dd(Input::get('page'));
    $results =  \App\Post::latest()->paginate(7);

    $response = [
        'pagination' => [
            'total' => $results->total(),
            'per_page' => $results->perPage(),
            'current_page' => $results->currentPage(),
            'last_page' => $results->lastPage(),
            'from' => $results->firstItem(),
            'to' => $results->lastItem()
        ],
        'data' => $results
    ];

    return $response;
});

执行时,我检查控制台,结果= null,而我放了这个:dd(Input::get('page'));

是否应显示发送的页面

我该如何解决?

2 个答案:

答案 0 :(得分:0)

尝试更改行:

global match flag

为:

dd(Input::get('page'));

return Input::get('page'); 方法将转储dd值并暂停执行。因此输出不会是格式正确的json。它可能是一些原始的html代替你倾倒的值。

答案 1 :(得分:0)

这是vue js代码的完整示例

var app = new Vue({
    el: '#invoice',
    data: {
        form: new FormData(),
        errors: {},
        tax: 0
    },
    methods: {
    random: function () {
      this.form.serial = Math.floor(Math.random() * 1000000) + 1;
    },
    sortBy: function() {
        if(this.form.tax_id) {
          var url = '{{route('invoice.get_tax', null)}}';
          this.$http.get(url)
           .then(function(response){
              if(response.data) {
                  console.log(response.data)
              }
           });
        }
     }
 })

有路线

Route::get('/get_tax/{tax_id}', function($tax_id)
{
    $tax = App\Tax::findOrFail($tax_id);
    if ($tax) {
        return response()
            ->json([
                'rate' => $tax->rate,
                'type' => $tax->type
            ], 200);
    } else {
        return response()
            ->json([
                'rate' => 0,
                'type' => 1
            ], 200);
    }
})->name('invoice.get_tax');