Отказался устанавливать небезопасный заголовок «Соединение» AjaxPro AjaxMethod - PullRequest
0 голосов
/ 05 декабря 2018

Я использую AjaxPro.Я получаю эту ошибку при вызове GetReturns():

Отказался устанавливать небезопасный заголовок "Соединение"

Report.Areas_Report.GetReturns(30, aoData, (response) => {
  if (response.error == null) {
    var myObject = response.value;
    fnCallback(myObject);
  } else {
    $.growl.error({ 
      message: "An error occurred. Please try again." 
    });
  }
  $(_overlayElementId).remove();
});
[AjaxMethod]
public DataTableResult GetReturns(int days, List<DataTableAjaxPostModel> model = null)
{
  var dataTableRequest = DataTableModelBinder.FilterDateTableRequest(model);
  var result = reportsService.GetReturns(warehouseId, days, dataTableRequest);
  return result;
}

1 Ответ

0 голосов
/ 08 февраля 2019

Это проблема, вызванная обновлением в Chrome.К сожалению, сборка AjaxPro не была обновлена, чтобы отразить это.Есть еще простой способ заставить его работать.Вам просто нужно иметь свою собственную версию AjaxPro и удалить ошибочную строку из кода.

Вы можете загрузить кодовую базу AjaxPro с Github по адресу https://github.com/michaelschwarz/Ajax.NET-Professional. Вам нужно будет выбрать скачать как zip,Извлеките файлы, скопируйте проект в свое решение, затем измените ссылку вашего веб-проекта на AjaxPro, чтобы он пришел из этого нового проекта.

Затем откройте файл в корне этого проекта с именем core.js и перейдите встрока 445. Весь блок, который вызывает проблему, нужно будет удалить или закомментировать.

    if(!MS.Browser.isIE) {
        this.xmlHttp.setRequestHeader("Connection", "close");
    }

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

Еще одно замечание: этот проект создается как AjaxPro.dll, а не более новое имя AjaxPro.2.dll, несмотря на то, что это правильная версия для .net framework 2+ - вы можете либо изменить имя сборки, либо просто изменить имя в файле web.config.Так, например,

    <sectionGroup name="ajaxNet">
        <section name="ajaxSettings" type="AjaxPro.AjaxSettingsSectionHandler,AjaxPro.2" requirePermission="false" restartOnExternalChanges="true"/>
    </sectionGroup>

станет

    <sectionGroup name="ajaxNet">
        <section name="ajaxSettings" type="AjaxPro.AjaxSettingsSectionHandler,AjaxPro" requirePermission="false" restartOnExternalChanges="true"/>
    </sectionGroup>

... и везде в конфигурационном файле, где упоминается AjaxPro.2, необходимо изменить на AjaxPro

...