500,错误,内部服务器错误ajax到laravel控制器

时间:2017-08-08 22:22:10

标签: javascript php jquery ajax

我试图用这条路线拨打laravel控制器:

Route::post('obtenerNodos', 'panelController@obtenerNodos');

但我得到:500 , error, Internal Server Error

$.ajax({        
    url: "obtenerNodos",
    data: { id: '1' },
    method: 'post',
    success: function () {
         console.log("done");
         //do something
    },error: function(xhr, ajaxOptions, thrownError){
         console.log(xhr.status+" ,"+" "+ajaxOptions+", "+thrownError);
    }

});

这是控制器:

namespace App\Http\Controllers;

use GuzzleHttp\Client; use Illuminate\Http\Request;

class panelController extends Controller {
    public function viewpanel(){
        return view('admin.panel');
    }

    public function viewstats(){
        return view('admin.estadisticas');
    }

    public function viewfacs(){
        $client = new Client();        
        $res = $client->get('http://smartbill.co:332/SmartBill2/rest/factura/get?codigo=FA001100x01&token=fd25834e78c7c4f806e9e56b307d16c18a847197');
        $respuesta = json_decode( $res->getBody()->getContents(),true);
        return view('admin.factura_add')->with('facturas', $respuesta);
    }

    public function viewfacsreg(){
        return view('admin.factura_reg');
    }

    public function cerrarSesion(){
        //matar sesion antes de hacer la redirreccion
        return view('welcome');
    }

    public function obtenerNodos($id){
        $id = Input::get("id");
        return "done";
    }
}

这是完整的错误:

  

POST http://binario.com/obtenerNodos 500(内部服务器错误)发送   @jquery.min.js:6 ajax @ jquery.min.js:6(匿名)@ viewfacsreg:199

1 个答案:

答案 0 :(得分:1)

保持这样的路线:

Route::post('obtenerNodos', 'panelController@obtenerNodos');

将您的obtenerNodos()功能更改为:

public function obtenerNodos(Request $request){

    $id = $request->id;

    return "done";
}

并且不要忘记在顶部导入:use Illuminate\Http\Request;

添加此JavaScript,为jQuery中的所有ajax请求设置默认值。最好是在您的应用中包含的js文件中:

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
})

确保您的刀片页面中有这样的元标记:

<meta name="csrf-token" content="{{ csrf_token() }}">