服务器以404响应.ajax呼叫未到达控制器

时间:2017-01-20 20:39:11

标签: javascript c# jquery ajax

我正在编写一个应用程序,它从文本框中获取一个字符串,并在按钮单击时调用服务器方法。但是我得到错误说: http://localhost:33655/Search/Search1 404(未找到) 检查:我看到错误。无法加载资源。服务器以404响应。

这是我的js和控制器代码。

function look_up_term() {
    var search = {};
    var Query = document.getElementById("SearchString").value;

    $.ajax({
        type: "POST",
        url: '/Search/Search1',
        contentType: "application/json; charset=utf-8",
        data: Query,
        dataType: "json",
        success: function (response) {
            alert("success");
        },
        error: function (response) {
            alert("error");
        }
    });
}  

控制器代码

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using WebApplication1.Models;

    namespace WebApplication1.Controllers
    {

        public class SearchController : Controller
        {
            [HttpGet]
            public JsonResult Search1(String sLookupIds)
            {    
                return Json(new JsonResult()
                {
                    Data = "Result"
                }, JsonRequestBehavior.AllowGet);
            }

        }
    }

有什么想法?

1 个答案:

答案 0 :(得分:1)

首先用[HttpPost]替换[HttpGet]。

[HttpPost]
public JsonResult Search1([FromBody]String sLookupIds)
{
    ...
}

您的ajax调用中Query变量的含义是什么?尝试发送

等数据
$.ajax({
    type: "POST",
    url: '/Search/Search1',
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify(Query),
    dataType: 'json',
    success: function (response) {
        alert("success");
    },
    error: function (response) {
        alert("error");
    }
});