0

Web サービスへの呼び出しを行うことになっている HTML ページで Ajax を実行していますが、Ajax 呼び出しは、Web サービスに行くとは思えない場所に機能していません。

問題は次のとおりです。ボタンをクリックすると、textStatus でエラーが発生し、errorThrown では何も発生しません。ローカル ホストは、私の VS 2013 IDE 内でブレークポイントを使用して実行されており、そこに到達することはありません。プロジェクトの性質上、HTML ページと JQuery を使用して、収集したデータを Web サービスに渡してデータを管理する必要があります。しかし、それは決して実行されていないかのようであり、私が見つけることができるすべての参照は、このコードが正しいと言います. 私が気になった 2 つのことは、JSON を使用してデータ コントラクトのパラメーターを提供することでした。何かをデータ コントラクト クラスに変換せずに、これはどのように機能しますか。また、JSON を渡すために多くの方法を試しましたが、どれも私の運命を変えないようです。デバッグするエラーを生成できれば、少なくとも正しい方向に向けるのに役立ちますが、だだ...問題は私です. アクションがashxページに設定されたフォームを使用してこのプロセスを試してみましたが、それは機能しますが、データが送信されたことを示すために呼び出し元のhtmlページに戻るには何かをスムーズにする必要があるため、ハックのようです. さらに、Jquery Ajax はよりクリーンでエレガントなソリューションだと思います。このWebサービスには、他のプロジェクトがデータを受け入れて管理するためにすでに機能しているいくつかの方法があり、HTMLページデータを含めるように拡張したいと考えています...ここでどこが間違っているのか誰にもわかりますか? 前もって感謝します...私はこれで過去2日間困惑しており、先に進まなければなりません. Jquery Ajax は、よりクリーンでエレガントなソリューションだと思います。このWebサービスには、他のプロジェクトがデータを受け入れて管理するためにすでに機能しているいくつかの方法があり、HTMLページデータを含めるように拡張したいと考えています...ここでどこが間違っているのか誰にもわかりますか? 前もって感謝します...私はこれで過去2日間困惑しており、先に進まなければなりません. Jquery Ajax は、よりクリーンでエレガントなソリューションだと思います。このWebサービスには、他のプロジェクトがデータを受け入れて管理するためにすでに機能しているいくつかの方法があり、HTMLページデータを含めるように拡張したいと考えています...ここでどこが間違っているのか誰にもわかりますか? 前もって感謝します...私はこれで過去2日間困惑しており、先に進まなければなりません.

コードは次のとおりです。

    $(document).ready(function () {

      //  alert("running inside");
        var webServiceURL = 'http://localhost:50350/DBMgr.svc/updateData';
        var data = "{FirstName:'name',LastName:'surname'}";

        alert(data);

        $("input[id='btnSubmitLead']").click(function () {
            $.ajax({
                type: "POST",
                url: webServiceURL,
                data: data,
                dataType: "json",
                success: function (results) {
                    alert("Your information has been sent, thank you... ");
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    alert(textStatus +"-"+ errorThrown);
                    alert("Your information has not been sent ");
                }
            });
        });

私のWCFサービス:

    public LeadData updateData(LeadData loadData)
    {
        LeadData updateok = new LeadData();

        if (loadData.FirstName.Length > 0)
        {
            updateok.FirstName = "It has";
            updateok.LastName = "Been found";
        }
        else
        {
            updateok.FirstName = "Name";
            updateok.LastName = "Not Found";
        }

        return updateok;
    }

宣言は次のとおりです。

    [OperationContract]
    [WebInvoke(Method="POST", RequestFormat=WebMessageFormat.Json, ResponseFormat=WebMessageFormat.Json)]
    LeadData updateData(LeadData loadData);


[DataContract]
public class LeadData
{

    [DataMember]
    public string FirstName { get; set; }

    [DataMember]
    public string LastName { get; set; }

}

そうそう、HTMLにはこれが含まれています:

      <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type=""></script>
4

1 に答える 1

0

HTML5 アプリと wcf サービスのドメインが同じではない可能性があります。jsonp を試してください: JSONP とは何ですか? 希望はあなたを助けることができます。

于 2013-09-22T10:02:37.263 に答える