加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

为什么在访问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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读