我试图用这条路线拨打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
答案 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() }}">