Политика CORS заблокировала исходную точку. Ответ на предпечатный запрос не прошел проверку контроля доступа. - PullRequest
0 голосов
/ 08 ноября 2018

Здравствуйте. Я использую Jqgrid и хочу отобразить список всех заказов в JqGrid, но данные заказа не отображаются в Jqgrid. Любой эксперт может сказать мне, в чем заключается проблема в моем коде, и почему данные не отображаются в моем jqgrid. Сначала, при загрузке сетки там нет ошибок, отображается только отображение на сетке "ошибки", но когда я обновляю сетку, то показываю эту ошибку:

Доступ к XMLHttpRequest по адресу 'http://api.bigcommerce.com/stores/4jwabif3gj/v2/orders.json' от origin 'http://localhost:62797' заблокирован политикой CORS: Ответ на предполетный запрос не проходит проверку контроля доступа: Перенаправление не разрешено для предварительного запроса.

HTML

<table id="JqGrid"></table>
 <div id="JqGridPager"></div>

JQuery

   <script type="text/javascript">

    jQuery(document).ready(function ($) {
        var $grid = $("#JqGrid");
        $grid.jqGrid({
            url: 'http://api.bigcommerce.com/stores/4jwabif3gj/v2/orders.json',
            datatype: 'json',
           ajaxGridOptions: { xhrFields: { withCredentials: true } }, 

           colNames: ['id', 'billing_address', 'date_created', 'date_modified', 'date_shipped', 'status'],
            colModel: [
                { name: 'id', index: 'id', width: 10 },
                { name: 'billing_address', index: 'billing_address', width: 50 },
                { name: 'date_created', index: 'date_created', width: 50, sorttype: 'date', datefmt: 'Y-m-d' },
                { name: 'date_modified', index: 'date_modified', width: 50, sorttype: 'date', datefmt: 'Y-m-d' },
                { name: 'date_shipped', index: 'date_shipped', width: 50, sorttype: 'date', datefmt: 'Y-m-d' },
                { name: 'status', index: 'status', width: 50 },
            ],
            caption: "Employees",
            pager: "#JqGridPager",
            loadBeforeSend: function (jqXHR) {
                jqXHR.setRequestHeader("X-Auth-Client", 'clientstring', "X-Auth-Token", 'tokenid');
            },
            viewrecords: true,
            width: 1100,
            height: 400
        });
        $grid.jqGrid('navGrid', '#JqGridPager', { edit: false, add: false, del: false })
    });
</script>

1 Ответ

0 голосов
/ 08 ноября 2018

Если вы действительно хотите использовать этот сайт, я думаю, что единственный вариант - это прокси через него через веб-сайт, который вы ДЕЛАЕТЕ контролировать. На вашем сайте включите и поддержите CORS, ваша страница вызывает вашу службу, ваша служба вызывает получателя и передает ответ на вашу страницу.

Хотя это технически правильный ответ, который разблокирует вас, я думаю, вам следует подумать, что вы используете чужой ресурс для своих собственных целей. Они, вероятно, блокируют доступ к CORS по определенной причине. Следование этому предложению может нарушить условия использования этого сайта, и вы делаете это на свой страх и риск.

Либо свяжитесь с сайтом и заключите сделку для ваших нужд, либо найдите другой источник данных, которые у вас есть, которые вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...