weixin_33736649 2015-10-14 08:04 采纳率: 0%
浏览 66

AJAX Jquery MVC5 404错误

I am very new to MVC and I have got a question about MVC / AJAX Calls.

I am trying to get the data back from MVC Controller but it keeps saying 404 Error

"NetworkError: 404 Not Found - http://localhost:6481/MDT/Detail?id=4935"

My Javascript call is as below and I hardcoded id:1245 as the test. I tried to switch POST and GET, but still no luck

 $.ajax({
    type: "GET",
    url: 'MDT/Detail',
    data: JSON.stringify({
        id: 1245
    }),
    contentType: "application/json",
    dataType: "JSON",
    success: function(data) {
        console.log(data);
    },
    fail: function(data) {}
 }); 

I have tried it without JSON.stringify and the error is still the same (404)

$.ajax({
    type: "GET",
    url: 'MDT/Detail',
    data: {
        id: 1245
    },
    contentType: "application/json",
    dataType: "JSON",
    success: function(data) {
        console.log(data);
    },
    fail: function(data) {}
}); 

The following is the code in the Controller..

    [Route("MDT/Detail/{id}")]
    public JsonResult Detail(int? id)
    {
        ITS.Models.ComputerDetail cp = GetDataFromDatabase(id.Value);

        return Json(cp, JsonRequestBehavior.AllowGet);
    }

I have checked in Firebug and the parameters are passed correctly as following:

I couldn't figure out what I have done wrong. Could you please help me with this error?

If I used (http://localhost:6481/MDT/Detail/1245), it works fine and returns the JSON object but I couldn't call this MVC method from JQuery AJAX.

  • 写回答

2条回答 默认 最新

  • weixin_33713707 2015-10-14 08:07
    关注

    Answer is just not to use

    JSON.stringify({ id: 1245 })
    

    just pass

    data:{ id: 1245 }
    

    with

    Also POST request working after adding [HttpPOST] Attribute to Controller Action.

    And MVC default routing is {Controller}/{Action}/{id} as per your ajax call Route is http://localhost:6481/MDT/Detail?id=4935 and id is taken as Query String Parameter so for that you need to use Route as http://localhost:6481/MDT/493.

    评论
  • 程序go 2015-10-14 08:15
    关注

    You must send id not like param but like part of url. Change your code to this:

    $.ajax({
        type: "GET",
        url: 'MDT/Detail/1245',
        contentType: "application/json",
        dataType: "JSON",
        success: function(data) {
            console.log(data);
        },
        fail: function(data) {}
    });
    
    评论

报告相同问题?

悬赏问题

  • ¥15 存储过程或函数中的结果集类型变量如何使用。
  • ¥80 关于海信电视聚好看安装应用的问题
  • ¥15 vue引入sdk后的回调问题
  • ¥15 求一个智能家居控制的代码
  • ¥15 ad软件 pcb布线pcb规则约束编辑器where the object matpcb布线pcb规则约束编辑器where the object matchs怎么没有+15v只有no net
  • ¥15 虚拟机vmnet8 nat模式可以ping通主机,主机也能ping通虚拟机,但是vmnet8一直未识别怎么解决,其次诊断结果就是默认网关不可用
  • ¥20 求各位能用我能理解的话回答超级简单的一些问题
  • ¥15 yolov5双目识别输出坐标代码报错
  • ¥15 这个代码有什么语法错误
  • ¥15 给予STM32按键中断与串口通信