Какая конфигурация мне нужна для вызова ajax из другого API-интерфейса, оставшегося от другого домена? - PullRequest
0 голосов
/ 12 октября 2018

Функциональность следующая: поле клиента имеет определенное поведение, когда при наборе текста с 4-го письма вызывается служба, которая выводит первые 10 клиентов, которые соответствуют их именам или фамилиям.

У меня были проблемы, связанные св CORB (именно поэтому сейчас я запускаю Chrome без параметров безопасности), ища решения в сети, я добавил в свой блок ajax атрибут dataType: 'jsonp'.Когда он достигает ajax, он попадает в функцию «error», хотя невероятно, что в консоли я получаю синтаксическую ошибку.Нажав на него, чтобы перенаправить меня на ошибку, я вижу ответ службы, как я ожидал, но, как говорит консоль javascript, есть синтаксическая ошибка.Еще более невероятно, что когда я копирую содержимое ответа сервера с опечаткой и вставляю его в консоль, все становится правильно.Я подозреваю, что синтаксическая ошибка вызвана тем, что я читаю мой оставшийся API как jsonp (json), и я думаю, что ответ приходит как текст / обычный текст.Почему я подозреваю, что это текст?Потому что я запускаю chrome с политиками безопасности CORB (т. Е. Chrome по умолчанию) и пробую ту же функциональность, о которой идет речь, и там написано:

Блокировка перекрестного чтения (CORB), заблокированный ответ перекрестного происхождения http://10.10.32.142:8983/solr/cliente/select?fq=estado_i:1&wt=json&q=renzo%20AND%20*calderon*&qf=apematerno_sf%20apepaterno_sf%20nombre_sf%20numeroDocumento_sf%20razonsocial_sf&sort=idTipoDocumento_i%20desc&defType=edismax&rows=10&callback=jQuery112403425705734732649_1539376022673&_=1539376022674 с типом MIME текст / обычный .См. https://www.chromestatus.com/feature/5629709824032768 для получения дополнительной информации

ВАЖНЫЙ ФАКТ: Прежде чем я использовал веб-сервис из бэкэнда с ASP.NET c #, я отправил информацию в представление.Все хорошо, никогда не доставляло мне проблем или CORB, или что-нибудь.Единственное, что я решил использовать сервис с javascript, потому что потребовалось некоторое время, чтобы получить информацию от контроллера к представлению, учитывая, что он обрабатывал поступившие данные.Как я уже упоминал, я хочу сделать это с JS.Я был бы очень признателен за вашу помощь.Заранее большое спасибо.

введите описание изображения здесь

 $('#ClientName').on('keyup', function (e) {
                e.preventDefault();
                $('#Client').addClass('focus');
                $('#Client').addClass('selected');
                if ($('#ClientName').val().length >= 4) {
                    $('#Client').addClass('focus');
                    $('#Client').addClass('selected');
                    var value = $(this).val();

                    $.ajax({
                        url: 'http://10.10.32.142:8983/solr/cliente/select?fq=estado_i:1&wt=json&q=*renzo*%20AND%20*calderon*&qf=apematerno_sf%20apepaterno_sf%20nombre_sf%20numeroDocumento_sf%20razonsocial_sf&sort=idTipoDocumento_i%20desc&defType=edismax&rows=10',
                        async: true,
                        type: "GET",//"POST",
                        contentType: 'text/plain',
                        //crossDomain: true,    
                        //jsonpCallback : "getJSON",
                        dataType:'jsonp',
                        //responseType:'text/json',
                        xhrFields: {
                            withCredentials: false
                        },
                        headers: {
                            'Access-Control-Allow-Credentials' : true,
                            'Access-Control-Allow-Origin':'*',
                            'Access-Control-Allow-Methods':'GET',
                            'Access-Control-Allow-Headers':'text/plain',
                        },
                        success: function (data) {

                            console.log(data);

                        },
                        error: function (xhr) {
                            alert('Hubo un error en la consulta. \n' + xhr.responseText)
                        }
                    });
                }
                $('#Client').addClass('focus');
                $('#Client').addClass('selected');
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...