0

別の問題があります:(私はWSを持っています、wchichはVS 2010 MVCアプリの一部です。それを呼び出すことができ、正常に動作します。私の問題は、変数(関数パラメーター)からパラメーターを渡せないことです。

function test2(usr, art) {
    alert('start : ' + usr);

    var params = {user : usr, idArt : art}

    $.ajax({
        type: "POST",
        url: "/../WebServicePrzeczytany.asmx/Przeczytany",
        data: params,
        dataType: "json",
        success: function suc(msg) {
            alert("odebrane: ");
        },
        faild: fail
    });

    alert('stop : ' + art);
};

ボタンから呼んでいます(テスト用)。何か疑惑はありますか?

問題が解決しました :

FirebugのAnthonyGrist(コメントを参照)に改めて感謝します。これは強力なツールです。

それで、Firebugは私に、WSからエラーが発生していると言いました。「リクエスト形式は、予期せず「/Przeczytany」で終わるURLに対して認識されません」でした。

解決策は追加することです

<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices> 

WSに。そしてそれがすべてです。ジュピ!! :)

4

1 に答える 1

0

Web サービスで JSON を有効にすると ([ScriptService]属性でメソッドを装飾することにより)、次のように呼び出すことができます。

function test2(usr, art) {
    alert('start : ' + usr);

    var params = {user : usr, idArt : art}

    $.ajax({
        // TODO: never hardcode an url like that => use an url helper to generate that!
        url: '/../WebServicePrzeczytany.asmx/Przeczytany',
        type: 'POST',
        data: JSON.stringify(params),
        contentType: 'application/json',
        success: function suc(msg) {
            alert('odebrane: ');
        },
        error: fail
    });

    alert('stop : ' + art);
};

注意事項:

  • JSON.stringifyJavaScript オブジェクトを Web サービスに渡す前に JSON 文字列に変換するネイティブ メソッドの使用
  • contentType: 'application/json'それがサービスに渡すものであるための設定

あなたがすることは残っています:

  • サービスにハードコーディングされた url プロパティを、url ヘルパー ( など@Url.Content("~/WebServicePrzeczytany.asmx/Przeczytany")) から生成された url に置き換えます。
于 2013-02-25T13:49:34.783 に答える