尝试上传到 Cloudinary 时收到令人困惑的错误

Receiving confusing error while trying to upload to Cloudinary

我一直在努力让云上传工作。
使用来自 php cloudinary 库的示例,它可以独立运行并且上传没有问题。
当我将代码移动到现有的 Laravel 应用程序时,我 运行 遇到了问题。 即我在控制台中收到此错误:

XMLHttpRequest cannot load https://api.cloudinary.com/v1_1/mycloudinaryname/auto/upload. The request was redirected to 'http://localhost/laravelappfolder/cloudinary_co…=%23%3CSet%3A0x0000000c3691e0%3E&type=upload&version=1457930756&width=1920', which is disallowed for cross-origin requests that require preflight.

我一直在努力寻找可以为我指明正确方向的东西,但我似乎找不到任何东西。它独立运行时运行良好,但在 laravel 应用程序中失败。代码完全一样(使用相同的jquery)。
在我的 laravel 视图中,我有。我正在使用未签名的上传功能:

{!! cl_unsigned_image_upload_tag('fileupload', 'repository',
["callback" => $cors_location, 
"public_id"=>"blahblah".time(), 
"html" => ["multiple" => true],
"class" => "form-control"]) 
!!}

$cors_location 提供 php 库附带的 cors html 文件的位置。 laravel 中的位置是正确的。
我知道这可能是我遗漏的一些简单的东西,但我只是想不出它可能是什么。
这是 JQuery 代码:

$(function() {
            $('.cloudinary-fileupload')
                    .fileupload({
                        dropZone: '#file_drop',
                        start: function () {
                            $('.status_value').text('Please wait, starting upload...');
                        },
                        progress: function (e, data) {
                            $('.status_value').text('Please wait, uploading...');
                            var progval = Math.round((data.loaded * 100.0) / data.total);
                            $('#progtext').text(progval+'%');
                            $(".progress-bar").css('width', progval+'%').attr('aria-valuenow', progval);
                        },
                    })
                    .on('cloudinarydone', function (e, data) {

                        $('.status_value').text('Idle');
                        $(".progress-bar").css('width', '0%').attr('aria-valuenow', 0);
                        $.post('{{ $cloud_upcomp }}', data.result);
                        var info = $('<div class="uploaded_info"/>');
                        $(info).append($('<div class="image"/>').append(
                                $.cloudinary.image(data.result.public_id, {
                                    format: data.result.format, width: 150, height: 150, crop: "fill"
                                })
                        ));
                        $('.uploaded_info_holder').append(info);
                    });
        });

$cloud_upcomp 是来自 cloudinary php 库的 upload_complete.php 文件的位置。
'cloudinarydone' 事件永远不会被触发,因为它给出了之前的错误。但是奇怪的是,图片文件已经上传了,因为我可以在我的cloudinary帐户中查看上传的文件。

这里是Cloudinary库生成的HTML(即函数生成的<input>标签):

<div class="row">
                            <div class="col-md-6" id="file_drop">
                                <form>
                                <span class="status_value form-label">Awaiting user selection</span>
                                <input class='cloudinary-fileupload' data-cloudinary-field='fileupload' data-form-data='{"timestamp":1458079831,"callback":"http:\/\/localhost\/laravel\/public\/assets\/vendors\/cloudinary\/lib\/cloudinary_cors.html","public_id":"blahblah1458079831","upload_preset":"repository"}' data-url='https://api.cloudinary.com/v1_1/myaccount/auto/upload' multiple='1' name='file' type='file'/>

                                <div class="progress">
                                    <div class="progress-bar progress-bar-info progress-bar-striped" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">
                                        <span id="progtext" class="progress-text"></span>
                                    </div>
                                </div>
                                </form>
                            </div>
                            <div class="uploaded_info_holder"></div>
                        </div>

我刚刚覆盖了我的帐户名,但是 URL 在函数生成时具有正确的帐户名。

好吧,我感觉有点愚蠢和害羞!

看来我的问题更多地源于 JS 导入顺序。

   <script type="text/javascript" src="{{ asset('assets/vendors/cloudinary/js/jquery.ui.widget.js') }}"></script>
    <script type="text/javascript"
            src="{{ asset('assets/vendors/cloudinary/js/jquery.iframe-transport.js') }}"></script>
    <script type="text/javascript" src="{{ asset('assets/vendors/cloudinary/js/jquery.fileupload.js') }}"></script>
    <script type="text/javascript" src="{{ asset('assets/vendors/cloudinary/js/jquery.cloudinary.js') }}"></script>

这是必须设置 JS 文件的顺序。它们必须是页脚部分中的第一组 JS 文件,尤其是在 cloudinary JQuery 设置之前。
一旦我这样做了,一切都开始正常工作,没有错误。