0
このWebMethodをJQueryオートコンプリートとして呼び出そうとすると、400(Bad Request)が発生します。私は他のポストで解決策を試しましたが、うまく動作していないようです。ここに私のコードです。 webmethodはパラメータを取らず、同じディレクトリのcsvファイルからJSON文字列を返します。私はこのエラーが発生するのを防ぐために何もしようとしましたが、何も動作していないようです。400(不正リクエスト)JQueryオートコンプリートWebMethodコール
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.');
}
});
},
});
}
変化型の
てみてください。 'GET' とレムをoveデータ:JSON.stringify({})、 – Ram
提案をいただきありがとうございますが、私はまだ同じ400エラーが発生します。 –
jquery auto completeを試す方法をパラメータなしで送信します。 –