我正在使用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;
}
答案 0 :(得分: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放到网上即可。
还要注意一点,尽管该项目是.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