Tôi gặp sự cố lạ khi sử dụng cuộc gọi JQuery trong dự án ASP.NET MVC của mình. Tôi thấy rằng cuộc gọi Ajax cho 404 (lỗi tài nguyên không tìm thấy). Nhưng khi tôi sử dụng cuộc gọi GET URL thông thường, tôi có thể gọi thành công máy chủ mà không gặp bất kỳ sự cố nào. Bất kỳ ý tưởng tại sao điều này là như vậy?Cuộc gọi JQuery Ajax cho lỗi 404 'Không tìm thấy tài nguyên' nhưng lệnh gọi URL thông thường là Fine
này mã ASP.NET MVC của tôi
public class ViewRecordController: Controller
{
public JSONResult GetSoftwareChoice(string username)
{
return Json(username);
}
}
Đây là mã JQuery tôi:
$(function() {
$("#username").click(function() {
$.getJSON("ViewRecord/GetSoftwareChoice", {username:'123'},
function(data) {
alert(data);
});
});
});
Trên đây JQuery mang lại cho tôi một lỗi 404. Rõ ràng là không tìm thấy ViewRecord/GetSoftwareChoice
trên máy chủ, khi có liên quan đến cuộc gọi AJAX.
Nhưng nếu tôi gõ này trong trình duyệt web của tôi:
http://myapp/ViewRecord/GetSoftwareChoice?username=123
thì không có vấn đề.
Điều này thật kỳ lạ.
Chỉ trong trường hợp nếu bạn quan tâm, đây là con đường của tôi:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
}
Edit: Tôi bước vào mã của tôi, và thấy rằng các cuộc gọi URL là ViewRecord/GetSoftwareChoice?username=123
.
câu hỏi liên quan: Select Element inside Form not working in JQuery
.... hoặc vào "/ ViewRecord/GetSoftwareChoice". dấu gạch chéo hàng đầu có nghĩa là đường dẫn tuyệt đối, ngay cả khi bạn không bao gồm tên máy chủ – Javier
Cảm ơn, Javier. Tôi đưa câu trả lời của bạn vào câu trả lời của tôi. – Graviton
Tôi nghĩ Johhny G (và Jarrod trong các ý kiến) đã ngụ ý câu trả lời này. – Charlino