我的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 = AppPost::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'));
它是否应该显示发送的页面
我该如何解决?
尝试更改该行:
dd(Input::get('page'));
自:
return Input::get('page');
dd
方法将转储var
值并停止执行。因此,输出不会是格式正确的 json。它可能是一些原始的html破坏了你转储的值。
这是 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 = AppTax::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');