2017-09-08 6 views
0

JqueryでWebMethodを呼び出す際に問題があります。Ajaxコールで常にエラーが返される

function runQuery(e) { 
    var search = $(e).val(); 
    var csKind; 

    if ($('#rbLP').is(':checked')) 
    csKind = 1; 
    else 
    csKind = 0; 

    var params = { 
    url: 'addEditProduct.ascx/AutoComplete_Press', 
    method: 'post', 
    contentType: 'application/json', 
    data: JSON.stringify(search), 
    dataType: 'json', 
    success: function(data) { 
     alert(1); 
    }, 
    error: function(data) { 
     alert(2); 
    } 
    }; 

    $.ajax(params); 
} 
[WebMethod] 
public static void AutoComplete_Press(string searchClause, int csKind) 
{ 
    int searchType = 0; //ЕГН 

    Regex regex = new Regex("^[0-9]+$"); 
    if (!regex.IsMatch(searchClause)) 
    searchType = 1; 

    string clients = laboratory.getClients2(searchType, searchClause, csKind); 
} 

どのように問題を診断することができ、私は前にAJAXを使ったことがないと私は途方に暮れてよ。

+1

要求後にコンソールをチェックすることで、エラーを診断できます。ネットワークタブをチェックして、ステータスコードと応答テキストを表示することもできます。さらに良い方法は、VSのWebMethodにブレークポイントを置き、それをステップ実行することです。 –

+0

これは有効なURLのようではありません: 'addEditProduct.ascx/AutoComplete_Press'。 – JuanR

答えて

1

私はここで見ることができ、問題があなたの引数の受け渡しです:あなたはcsKindが欠落している

data: JSON.stringify(search), 

、多分

data: "{searchClause: '" + search + "',csKind: '" + csKind + "'}", 

に次の行を変更してまで、あなたの方法を変更します。

public static void AutoComplete_Press(string searchClause, string csKind) 
0

あなたが私に尋ねると、URLが間違っているようです。ブラウザであなたのコンソールを開き、それが何を言っているかを見て、それは接続を拒否する/接続が拒否されましたエラーを拒否します。また、ブラウザでネットワークを開いて、どのHTTP応答を取得しているか確認できます。これは、問題の診断を開始するのに役立ちます。

関連する問題