微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在访问Ajax中的控制器方法时出现404错误?

我有一个控制器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.

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

相关推荐