2016-06-01 7 views
0

Meine Frage ist sehr ähnlich mit Yajra Datatables Package for Laravel deosnt work properly with laravel 5.2ungültige JSON-Antwort auf Laravel 5.2 und yajra/Laravel-Datentabellen-Orakel

I Ungültige JSON Antwort auf Chrome bekommen, aber ich konnte die HTTP-Aufruf Antwort nicht anzeigen.

Hier ist mein Controller

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Http\Requests; 
use App\Office; 
use Datatables; 

class OfficeController extends Controller 
{ 
    public function index() 
    { 
     return view('offices.index', ['page_title' => 'Jabatan']); 
    } 

    public function data() 
    { 
     $offices = Office::select(['id', 'title']); 

     return Datatables::of($offices)->make(true); 
    } 

... 

Mein Skript

$(function() { 
    $('#offices-table').DataTable({ 
     processing: true, 
     serverSide: true, 
     ajax: '{!! route('offices.data') !!}', 
     columns: [ 
      { data: 'id', name: 'id' }, 
      { data: 'title', name: 'title' } 
     ] 
    }); 
}); 
+0

können Sie die Reaktion Ihres Ajax-Aufruf in Chrom dev Werkzeug (Netzwerk tab) –

+0

@SylvainGuilbert sehen Ich habe versucht, aber Chrom mir immer sagen: Diese Anfrage hat keine Antwortdaten verfügbar –

+0

kopieren Sie einfach Ihre Ajax-URL in einer anderen Seite einfügen –

Antwort

0

Zunächst einmal müssen Sie, was Ihre Funktion genau kehrt zu überprüfen. So würde ich Ihnen vorschlagen, ihn zu ändern, wie die erste

public function data() 
{ 
    $offices = Office::select(['id', 'title']); 

    dd(Datatables::of($offices)->make(true)); 
} 

Und dann an die URL an diese Funktion in Ihrem Browser oder Verwendung Inspektor soll gehen, um zu sehen, was Sie dort ankommen. Ich denke, es wird dir helfen, herauszufinden, was falsch ist.

Wenn es erwartetes Ergebnis zeigen wird versuchen, Ihre Funktion wie folgt zu ändern:

public function data() 
{ 
    $offices = Office::select(['id', 'title']); 

    return new JsonResponse(Datatables::of($offices)->make(true)); 
} 

Und nicht vergessen

use Illuminate\Http\JsonResponse; 

Anweisung vor dem Controller Klassendefinition hinzuzufügen.

+0

Ich habe Ihren Vorschlag, aber das Ergebnis immer noch das gleiche. FYI, ich habe keinen Fehler in der Laravel-Logdatei sowie in NGINX error.log gefunden. –

+0

Also was dd(); Funktion zeigt Ihnen, wenn Sie die URL in Ihrem Browser öffnen? –

+0

Nichts. Ich kann den Fehler nicht einmal anzeigen –