拒绝设置不安全的标头"Connection" AjaxPro Ajax方法



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

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

您可以从Github下载AjaxPro代码库,网址为https://github.com/michaelschwarz/Ajax.NET-Professional.您需要选择下载为zip,提取文件,将项目复制到您的解决方案中,然后将web项目对AjaxPro的引用更改为来自此新项目。

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

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

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

需要进一步注意的是,尽管该项目是.net framework 2+的正确版本,但它构建为AjaxPro.dll,而不是更新的名称AjaxPro.2.dll-您可以更改构建名称,也可以只更改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

最新更新