当UnobtrusiveJavaScriptEnabled设置为true时,可能会导致AJAX请求失败。这是因为ASP.NET MVC框架默认会阻止某些跨站请求,以防止跨站脚本攻击(XSRF)。
要解决这个问题,您可以尝试以下方法:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult MyAction(MyModel model)
{
// Your action logic here
}
$.ajax({
url: "/MyController/MyAction",
type: "POST",
data: {
__RequestVerificationToken: $('input[name=__RequestVerificationToken]').val(),
// Your other data here
},
success: function (result) {
// Handle success
},
error: function (xhr, textStatus, errorThrown) {
// Handle error
}
});
@Html.AntiForgeryToken()
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
// Disable UnobtrusiveJavaScriptEnabled
ModelValidatorProviders.Providers.Remove(ModelValidatorProviders.Providers.OfType<UnobtrusiveJavaScriptEnabledModelValidatorProvider>().First());
}
}
请注意,禁用UnobtrusiveJavaScriptEnabled可能会降低您的应用程序的安全性。在做出决策之前,请确保您了解可能的安全风险。
推荐的腾讯云相关产品:
这些产品可以帮助您更好地管理和保护您的AJAX请求,确保安全性和性能。
领取专属 10元无门槛券
手把手带您无忧上云