Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 此路由不支持POST方法。支持的方法:GET,HEAD。尝试使用ajax向控制器发送数据_Javascript_Jquery_Ajax_Laravel_Post - Fatal编程技术网

Javascript 此路由不支持POST方法。支持的方法:GET,HEAD。尝试使用ajax向控制器发送数据

Javascript 此路由不支持POST方法。支持的方法:GET,HEAD。尝试使用ajax向控制器发送数据,javascript,jquery,ajax,laravel,post,Javascript,Jquery,Ajax,Laravel,Post,我正在尝试使用ajax向controller发送数据,我发现此路由不支持POST方法。支持的方法:GET、HEAD。 有人能告诉我我做错了什么吗 在web.php中 Route::post('/fb', 'FormController@fb')->name('fb'); HTML: 拯救 JavaScript: <script language="javascript"> $('#formfb').on('submit', function(e)

我正在尝试使用ajax向controller发送数据,我发现此路由不支持POST方法。支持的方法:GET、HEAD。 有人能告诉我我做错了什么吗

在web.php中

Route::post('/fb', 'FormController@fb')->name('fb');
HTML:


拯救
JavaScript:

<script language="javascript">

  $('#formfb').on('submit', function(e){
    e.preventDefault();

    var w= <?php echo $resolution['width'] ;?>;
    var h= <?php echo $resolution['height'] ;?>;
     $("#picture").show();
html2canvas($('#picture'), {
width: w,
height: h
}).then(function(canvas) {
  var inputURI = canvas.toDataURL('image/png');   
  var binaryVal; 
  var inputMIME = inputURI.split(',')[0].split(':')[1].split(';')[0]; 
  if (inputURI.split(',')[0].indexOf('base64') >= 0) 
      binaryVal = atob(inputURI.split(',')[1]); 
  else
      binaryVal = unescape(inputURI.split(',')[1]); 
  var blobArray = []; 
  for (var index = 0; index < binaryVal.length; index++) { 
      blobArray.push(binaryVal.charCodeAt(index)); 
  } 
  var blobObject = new Blob([blobArray], { 
            type: inputMIME 
        }); 
        var formData = new FormData();
        formData.append("blob", blobObject, "blob");



        var route= $('#form-data').data();
        var form_data= $(this);
        $.ajax({
          type: 'POST',
          url: route,
          headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
         data: form_data.serialize(),
          success: function(Response){
            console.log(Response);
          }

}); 
})
</script>

$('#formfb')。关于('submit',函数(e){
e、 预防默认值();
var w=;
var h=;
$(“#图片”).show();
html2canvas($('图片'){
宽度:w,
身高:h
}).then(功能(画布){
var inputURI=canvas.toDataURL('image/png');
变量二进制;
var inputMIME=inputURI.split(',')[0]。split(':')[1]。split(';')[0];
if(inputURI.split(',')[0].indexOf('base64')>=0)
binaryVal=atob(inputURI.split(',)[1]);
其他的
binaryVal=unescape(inputURI.split(',)[1]);
var blobArray=[];
对于(var index=0;index
路线列表:

!!!更新


如果要使AJAX请求中的
url
参数动态化,只需

$.ajax({
    type: 'POST',
    url: {!!route('fb')!!},
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    },
    data: form_data.serialize(),
    success: function (Response) {
        console.log(Response);
    }
});
执行
{!!!!}
可以将PHP传递到JS中

注意:这个答案是一个长时间聊天的结果,在这个聊天过程中,很多东西都经过了测试

在Apache和PHP的配置发生一些更改后,以下代码现在可以正常工作:

JavaScript/jQuery
检查浏览器开发工具中的“网络”选项卡,查看通过ajax发出的请求。你是说这个吗?请求URL:请求方法:POST状态代码:405方法不允许远程地址:[::1]:80引用者策略:交叉源时严格源如果执行console.log(路由)在ajax请求之前,什么是它的logIt不会记录任何东西。@hcphoon正在记录一些东西,我认为您没有在
/fb
上发出请求,这就是为什么请求方法不受支持的原因。换句话说,
route
变量似乎是问题所在。但为了确保,您应该检查它是否返回预期值d值。仍然不工作。@GabrijelBatista现在有什么问题?相同的问题。控制台仍然只显示405后(不允许使用方法)尝试对url进行编码,例如,
url:'/fb'
已经尝试过了。我还尝试为这个ajax请求创建单独的脚本和函数,以查看脚本中是否有其他原因导致了这个问题,但仍然是相同的问题。
$.ajax({
    type: 'POST',
    url: {!!route('fb')!!},
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    },
    data: form_data.serialize(),
    success: function (Response) {
        console.log(Response);
    }
});
<script type="application/javascript">
    function fb() {
        let id = "{{ $user['id'] }}";
        let email = "{{ $user['email'] }}";
        $("#picture").show();
        html2canvas($('#picture'), {
            width: {{ $resolution['width'] }},
            height: {{ $resolution['height'] }}
        }).then(function (canvas) {
            let imgData = canvas.toDataURL('image/png');
            $.ajax({
                type: "POST",
                url: '{{ route('fb') }}',
                dataType: 'text',
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                },
                data: {
                    base64data: imgData,
                    userid: id,
                    useremail: email
                }
            });
            let imgsrc = document.getElementById("imgfb").src;
            window.open("https://www.facebook.com/sharer/sharer.php?u=" + encodeURIComponent(imgsrc), "pop", "width=600, height=400, scrollbars=no");
        })
    }
</script>
Route::post('/fb', 'FormController@fb')->name('fb');