【问题标题】:Laravel: Why my ajax request return "500 (Internal Server Error)"?Laravel:为什么我的 ajax 请求返回“500(内部服务器错误)”?
【发布时间】:2018-05-07 17:41:05
【问题描述】:

我正在尝试使用 Laravel 5.5 中的按钮发出 AJAX 请求。控制台返回 POST:500(内部服务器错误)。

我的 Javascript 代码在这里:

<script type="text/javascript">
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });

    $('#insertForm').on('submit', function(e){
        e.preventDefault();
        var data = $(this).serialize();
        var url  = $(this).attr('action');
        var post = $(this).attr('method');

        $.ajax({
             type: post,
             url: url,
             data: data,
             dataType: 'json',
          success:function(data)
          {
            console.log(data)
          }
        })          
    })
</script>

我的 HTML 表单代码:

<form action="{{ URL::to('add') }}" class="translation-form" method="POST" id="insertForm">
        <div class="language-area">
            <textarea class="form-control wow fadeIn" data-wow-duration="0.5s" name="words" id="lang-input" rows="10"></textarea>
        </div>
            <p class="upload-info wow fadeInDown" data-wow-duration="0.5s" data-wow-delay="0.3s">
            Add words from file
            <input type="file" name="file-1" id="file-1" class="inputfile inputfile-1" data-multiple-caption="{count} files selected" multiple />
            <label for="file-1"><span>"doc" or "docx"</span></label>
        </p>
    <div class="clearfix"></div>
    <div class="text-center translate-option">
        <button type="submit" class="btn btn-green btn-instant-translate wow fadeIn" data-wow-duration="0.5s">
            Add
        </button>
    </div>
</form>

我的 AjaxController:

class AjaxController extends Controller
{
    public function store(Request $request)
    {
        if($request->$ajax())
        {
            return "True request!";
        }
    }
}

还有我的路线:

Route::post('/add', ['uses'=>'AjaxController@store', 'as'=>'ajaxAdd']);

为什么会出现这样的错误?当我试图在控制台中输出数据而不向 AjaxController 发出使用请求时,Ajax 工作了。

【问题讨论】:

  • 你在$request-&gt;$ajax()的ajax之前有一个$,这应该是$request-&gt;ajax()

标签: php ajax laravel request laravel-5.5


【解决方案1】:

服务器以 500 响应,因为在 ajax 调用期间引发了一些异常。我猜是因为控制器中的代码,控制器代码应该是这样的

if($request->ajax())
{
  return "True request!";
}

编辑:响应ajax请求,可以使用响应对象和http响应码,而不是返回纯文本,这样可以知道ajax调用的准确状态,

【讨论】:

    【解决方案2】:

    你在$request-&gt;$ajax()中找到了一个流氓$

    class AjaxController extends Controller
    {
        public function store(Request $request)
        {
            if($request->ajax())
            {
                return "True request!";
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-06-05
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      • 2016-09-16
      • 2019-02-19
      • 1970-01-01
      • 2015-07-21
      • 1970-01-01
      相关资源
      最近更新 更多