【问题标题】:500 , error, Internal Server Error ajax to laravel controller500,错误,内部服务器错误 ajax 到 laravel 控制器
【发布时间】:2017-08-08 22:22:09
【问题描述】:

我正在尝试使用此路由调用 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

【问题讨论】:

  • 你能从你的控制器分享obtenerNodos()代码吗?
  • 你也可以分享堆栈跟踪错误
  • @yoeunes 已经编辑了帖子

标签: javascript php jquery ajax


【解决方案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() }}">

【讨论】:

  • 已经按照你说的做了,但现在我得到这个错误:POST binario.com/obtenerNodos404 (Not Found) send @ jquery.min.js:6 ajax @ jquery.min.js:6 (anonymous )@viewfacsreg:199
  • @CarlosJaramilloCorrales 看看我更新的答案,现在应该可以了
  • @younes 非常感谢您的帮助,它现在非常完美。
  • 不客气@CarlosJaramilloCorrales 你能投票给答案吗
猜你喜欢
  • 2020-02-12
  • 2018-04-16
  • 2016-03-24
  • 1970-01-01
  • 2017-04-12
  • 2017-11-05
  • 2021-08-25
  • 2019-05-12
  • 2015-09-20
相关资源
最近更新 更多