400(错误请求)JQuery自动完成WebMethod调用

本文关键字:WebMethod 调用 JQuery 错误 请求 | 更新日期: 2023-09-27 18:12:40

当我尝试为JQuery自动完成调用这个WebMethod时,我遇到了一个400(错误的请求)。我尝试了其他职位的解决方案,但他们似乎没有工作。这是我的代码。webmethod应该不接受任何参数,并从同一目录下的csv文件返回JSON字符串。我试过做很多事情来防止得到这个错误,但似乎没有工作。

c#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Web.Script.Serialization;
using System.Web.Services;
namespace WebApplication2
{
    [System.Web.Script.Services.ScriptService]
    public partial class _Default : System.Web.Services.WebService
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        [WebMethod]
        public static string getJSON()
        {
            string jsonString = "";
            // Read in file from a server side csv file. 
            String[] values = File.ReadAllText(@"EmployeeData.csv").Split(',', ''n');
            int i = values.Length / 5;
            Person[] Employees = new Person[i-1];
            // Make list of employees and add their data from the csv file.
            for (int k = 1; k < i; ++k)
            {
                string first = values[k * 5 + 1];
                string last = values[k * 5];
                string preferred = values[k * 5 + 2];
                string position = values[k * 5 + 3];
                string location = values[k * 5 + 4];
                Person Person1 = new Person(first, last, preferred, position, location);
                Employees[k-1] = Person1;
            }
            var javaScriptSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
            jsonString = javaScriptSerializer.Serialize(Employees);
            return jsonString;
        }
    }
}
JQuery

function searchName() {
    $('#nameSearch').autocomplete({
        source: function (request, response) {
            $.ajax({
                type: 'POST',
                url: '<%= ResolveUrl("Default.aspx/getJSON") %>',
                data: JSON.stringify({}),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    console.log(data);
                    response(data);
                },
                error: function() {
                    alert('Something went wrong.');
                }
            });
        },
    });
}

400(错误请求)JQuery自动完成WebMethod调用

请尝试

data: '{}',  

代替

data: JSON.stringify({}),