2016-10-11 11 views
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.'); 
       } 
      }); 
     }, 

    }); 
} 
+0

変化型の

data: '{}', 

てみてください。 'GET' とレムをoveデータ:JSON.stringify({})、 – Ram

+0

提案をいただきありがとうございますが、私はまだ同じ400エラーが発生します。 –

+0

jquery auto completeを試す方法をパラメータなしで送信します。 –

答えて

0

代わり

data: JSON.stringify({}), 
+0

それでも、同じエラーが発生しました。 –

関連する問題