JQuery Ajax call gives 404 'Resource Not Found' Error but normal URL call is fine

前端 未结 7 2297
别跟我提以往
别跟我提以往 2020-12-31 18:29

I have a weird problem when using JQuery call in my ASP.NET MVC project. I found that the Ajax call gives 404 ( resource not found error). But when I use the usual URL GET c

相关标签:
7条回答
  • 2020-12-31 19:02

    I also had the same problem. After using Firebug as Graviton had done, I saw that my path was wonky so I changed it to just the name of my action. Get_OrderLine is the name of my action in my controller. inv_item_id is the parameter passed to the controller action.

    // Update OrderLine data by returning a JSON result
    $('#itemsddl').click(function (e) {
        var selectedItem = $(this).val();
        var actionURL = "Get_OrderLine";
        var d = "inv_item_id=" + selectedItem;
        var uom = $('#uom');
        var size = $('#size');
        var unitLbs = $('#unitLbs');
        var totalLbs = $('#totalLbs');
        var shipName = $('#shipName');
        var hazardClass = $('#hazardClass');
        var unnaNo = $('#unnaNo');
        var packingGroup = $('#packingGroup');
        var placard = $('#placard');
        var ergNo = $('#ergNo');
        $.ajax({
            cache: false,
            type: 'GET',
            url: actionURL, 
            data: d,
            datatype: JSON,
            success: function (data) {
                uom.val(data.uom);
                size.val(data.size);
                unitLbs.val(data.unitLbs);
                totalLbs.val(data.totalLbs);
                shipName.val(data.shipName);
                hazardClass.val(data.hazardClass);
                unnaNo.val(data.unnaNo);
                packingGroup.val(data.packingGroup);
                placard.val(data.placard);
                ergNo.val(data.ergNo);
            },
            error: function (xhr, ajaxOptions, thrownError) {
                alert('Failed to query item - ' + thrownError + "\n" + "Full details: " + xhr.responseText);
            }
        });
        e.preventDefault();
    });
    

    This is my action which returns a JSON result to my jQuery. The jQuery function then handles mapping from JSON to HTML. Not very pretty, but it works.

    public ActionResult Get_OrderLine(int? inv_item_id)
    {
        HazmatInfoItem item = new HazmatInfoItem();
        item.itemId = "0";
        item.size = "0";
        item.unitLbs = 0;
        item.qty = 0;
        item.totalLbs = item.qty * item.unitLbs;
        item.shipName = "";
        item.hazardClass = "";
        item.unnaNo = "";
        item.packingGroup = "";
        item.placard = "";
        item.ergNo = "";
    
        var items = from i in hazmatRepository.GetAllItems()
                    select i;
    
        // Get item details
        items = items.Where(i => i.INV_ITEM_ID.Contains(inv_item_id.ToString()));
    
        foreach (var i in items)
        {
            item.uom = i.UNIT_MEASURE_STD;
            item.size = i.INV_ITEM_SIZE;
            item.unitLbs = 1;
            item.totalLbs = item.unitLbs * item.qty;
            item.shipName = i.PAG_SHIPPING_NAME;
            item.hazardClass = i.HAZ_CLASS_CD;
            item.unnaNo = i.MSDS_ID;
            item.packingGroup = i.PACKING_CD;
            item.placard = i.PAG_PLACARD_TYPE;
        }
    
        return Json(item, JsonRequestBehavior.AllowGet);
    }
    

    I had originally added a new route to try to handle this, but commented it out to allow the default routing.

    Hopefully these solutions can help someone else who has had a similar problem when trying to use .ajax with jQuery and MVC.

    0 讨论(0)
提交回复
热议问题