0

我正在使用 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;
}
4

1 回答 1

0

这是由 Chrome 中的更新引起的问题。不幸的是,AjaxPro 构建尚未更新以反映这一点。仍然有一种简单的方法可以让它工作。您只需要拥有自己的 AjaxPro 版本并从代码中删除有问题的行。

您可以在https://github.com/michaelschwarz/Ajax.NET-Professional从 Github 下载 AjaxPro 代码库。您需要选择以 zip 格式下载,解压缩文件,将项目复制到您的解决方案,然后将您的 Web 项目对 AjaxPro 的引用更改为来自这个新项目。

接下来,打开该项目根目录中名为 core.js 的文件并转到第 445 行。需要删除或注释掉导致问题的整个块。

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

保存文件,构建,错误就会消失。请注意,您不需要上传 core.js 文件,因为它是嵌入式资源,只需将新的 AjaxPro.dll 放到网上即可。

还有一点需要注意的是,这个项目构建为 AjaxPro.dll 而不是 AjaxPro.2.dll 的新名称,尽管它是 .net 框架 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

于 2019-02-08T12:40:36.857 回答