为什么在访问Ajax中的控制器方法时出现404错误?
发布时间:2020-12-16 02:49:27 所属栏目:百科 来源:网络整理
导读:我有一个控制器ValidationController,它有一个名为EmailExist的方法 我有一个ajax电话 $.ajax({ type: "POST",url: "/Validation/EmailExist",data: { 'Email': $('#Email').val() },success: function (result) { if (result == true) { alert("true"); } e
我有一个控制器ValidationController,它有一个名为EmailExist的方法
我有一个ajax电话 $.ajax({ type: "POST",url: "/Validation/EmailExist",data: { 'Email': $('#Email').val() },success: function (result) { if (result == true) { alert("true"); } else { alert("false"); } },error: function (error) { alert(error.responseText); } 我收到404错误,我不知道为什么?有关如何调试的任何建议或建议? 解决方法
你有一个硬编码的网址:
url: "/Validation/EmailExist" 那太糟糕了.在处理网址时,您应该始终使用网址助手: url: "@Url.Action("EmailExist","Validation")" 这很糟糕的原因是因为你已经硬编码网址,你不再依赖你的路由配置.如果您在Global.asax中更改路线,您的代码将会中断.在IIS中部署应用程序时,您的代码也会中断,因为现在有一个您应该考虑的虚拟目录名称.所以正确的网址不再是/ Validation / EmailExist,而是/ MyAppName / Validation / EmailExist.帮助者会考虑所有这些事情,这就是你应该总是使用它们的原因. 当然,如果这是在一个单独的javascript文件中,您无法访问服务器端代码,则可以在DOM中使用HTML5 data- *属性来放置正确的URL或直接使用某些现有元素,例如表单操作或锚点href. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |