Функциональность следующая: поле клиента имеет определенное поведение, когда при наборе текста с 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');
});