繁体   English   中英

POST 500内部服务器错误

[英]POST 500 internal server error

我正在尝试学习如何将值从jquery传递到控制器并将其插入数据库,而不是在laravel 5.4中将值从表单传递到控制器,但是不幸的是我收到此错误消息:

POST http:// xxxx:x / addtable 500(内部服务器错误)。

这是我的刀片文件:SampleInsert.blade.php

{{csrf_field()}}
<input type="text" id="sample2"  required>
<div>
  <button type="button" class="button" onclick = "submit();"> SUBMIT</button>
  <a href="{{ url ('/') }}"><button type="button" class="button"> Cancel</button></a>
</div>

jQuery的:

function submit() {
  var samp = Array();
    samp[ 0 ] = 1;
    samp[ 1 ] = 'a';
    samp[ 2 ] =  document.getElementById( "sample2" )
    .value;
    samp[ 3 ] = 2;
    samp[ 4 ] = 3;

  var sample = JSON.stringify( samp );
  $.ajax( {
      type: "POST",
      url: '/addtable',
      data: {
          pSample: sample
      },
      success: function ( result ) {
          alert( 'Success' );
          alert( result );
      }
  } );
} //submit();

可添加的控制器:

public function addTable(){
  $sample = json_decode(Input::get('pSample'));
  $sample1 = $sample[0];
  $sample2 = $sample[1];
  $sample3 = $sample[2];

  print_r($sample3);
  print_r($sample);
}

先感谢您。

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

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

参见csrf-x-csrf-token

尝试如下代码:

<meta name="csrf_token" content="{{ csrf_token() }}" />

然后,您需要发出一个ajax请求,使用beforeSend方法。

$("#try").click(function(){
    var url = $(this).attr("data-link");
    $.ajax({
        url: "test",
        type:"POST",
        beforeSend: function (xhr) {
            var token = $('meta[name="csrf_token"]').attr('content');
            if (token) {
              return xhr.setRequestHeader('X-CSRF-TOKEN', token);
            }
        },
        data: { testdata : 'testdatacontent' },
        success:function(data){
            alert(data);
        },error:function(){ 
            alert("error!!!!");
        }
    }); //end of ajax
});

控制器:

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;

class SampleController extends Controller
{
    /**
     * Receive data here
     *
     * @param  Request  $request
     * @return Response
     */
    public function addTable(Request $request) { 
        if ($request->isMethod('post')) {
            //$request->input('field_name_here');
            $sample = $request->input('pSample');
            print_r($sample); 
        }
    }
}
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM