我有一个控制器ValidationController,它有一个名为EmailExist的方法
$.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.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。