最近我了解到您可以使用脚本管理器并设置 EnablePageMethods="true" 这是我想做的事情,但有任何安全隐患吗?
另外,有没有更新更好的方法呢?
真正要做的就是生成一个内联 JavaScript 代理,它允许通过语法EnablePageMethods="true"
进行回调。ASP.NET AJAX Page Methods
PageMethods
我更喜欢通过它的.ajax()
方法使用 jQuery 来调用ASP.NET AJAX Page Methods
,像这样:
代码隐藏
[WebMethod]
public static string GetDate()
{
return DateTime.Now.ToString();
}
JavaScript:
$.ajax({
type: "POST",
url: "PageName.aspx/GetDate",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
// Do something interesting here.
}
});
注意:既然ASP.NET AJAX Page Methods
自动序列化他们的响应JSON
,那么"json"
就是AJAX调用的返回dataType
。contentType
描述您发送到服务器的内容。
与向网站添加任何普通网页或服务相比,它没有更多的安全隐患。所需的预防措施是相同的——在没有先验证之前不要使用任何输入,不要在错误消息中无意中返回敏感信息等。
如果您不介意切换到新平台,还有一种更新的方法,可以说是更好的方法:ASP.Net MVC和相关的“Web API”。(您也可以将 Web API 与 Webforms 一起使用,感谢 Karl Anderson 在评论中的说明。)