This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center。
已关闭8年。
我有一个控制器
我有一个ajax电话
我收到404错误,但不知道为什么?关于如何调试此的任何建议或建议?
真不好在处理url时,应始终使用url helper:
之所以如此糟糕,是因为由于您已经对网址进行了硬编码,因此您不再依赖于路由配置。如果您在Global.asax中更改路线,则代码将中断。当您在IIS中部署应用程序时,您的代码也会中断,因为现在您应该考虑一个虚拟目录名称。因此,正确的URL不再是
当然,如果这是在单独的javascript文件中,而您无法访问服务器端代码,则可以在DOM中使用HTML5 data- *属性来放置正确的url或直接使用一些现有的元素,例如form action或锚href。
已关闭8年。
我有一个控制器
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:
url: "/Validation/EmailExist"
真不好在处理url时,应始终使用url helper:
url: "@Url.Action("EmailExist", "Validation")"
之所以如此糟糕,是因为由于您已经对网址进行了硬编码,因此您不再依赖于路由配置。如果您在Global.asax中更改路线,则代码将中断。当您在IIS中部署应用程序时,您的代码也会中断,因为现在您应该考虑一个虚拟目录名称。因此,正确的URL不再是
/Validation/EmailExist
,而是/MyAppName/Validation/EmailExist
。所有这些东西都被助手考虑在内,这就是为什么您应该始终使用它们的原因。当然,如果这是在单独的javascript文件中,而您无法访问服务器端代码,则可以在DOM中使用HTML5 data- *属性来放置正确的url或直接使用一些现有的元素,例如form action或锚href。