正在梳理论坛并尝试一切,我完全被难倒了。这是我的表格:
{!! Form::open(['data-regphoto', 'method' => 'POST', 'url' => ['/registerphoto']]) !!}
<input type="hidden" id="token" value="{{ csrf_token() }}">
<button type="submit" class="btn blue" id="savebutton">Save</button>
{!! Form::close() !!}
这是我的ajax电话:
$('form[data-regphoto]').submit(function (e) {
e.preventDefault();
console.log('photo pass to func: ' + data);
var form = $(this);
var url = form.prop('action');
var token = $('#token').val();
$.ajax({
type: 'POST',
url: url,
data: {'_token': token, 'photo': data },
async: true,
success: function() {
if(message) {
console.log('sucess: ' + data);
//$('.flash').html(message).fadeIn(400).delay(1200).fadeOut(600);
}
}
});
});
这是我的路线:
Route::post('/registerphoto', 'UserController@registerPhoto');
这是我的控制台错误:
POST http://localhost:8000/registerphoto 500 (Internal Server Error)
n.ajaxTransport.k.cors.a.crossDomain.send @ jquery.js:8625
n.extend.ajax @ jquery.js:8161
(anonymous function) @ ?email=kevin5@simongjewelry.com&firstname=Test&lastname=McTest&account=4&role=admin&permissions=p1p…:374
n.event.dispatch @ jquery.js:4430
n.event.add.r.handle @ jquery.js:4116
答案 0 :(得分:0)
您需要在页面标题中包含元标记,如此
<meta name="csrf-token" content="{{ csrf_token() }}" />
在脚本代码中的任意位置添加
$.ajaxSetup
({
headers : {'X-CSRF-TOKEN' : $('meta[name="csrf-token"]').attr('content')}
});
这应该解决你的问题。
答案 1 :(得分:0)
试试这个:
$.ajax({
type: 'POST',
url: url,
data: {'_token': token, 'photo': data },
async: true,
chunking: true,
cache: false,
contentType: false,
processData: false,
success: function() {
if(message) {
console.log('sucess: ' + data);
//$('.flash').html(message).fadeIn(400).delay(1200).fadeOut(600);
}
}
});