2011-12-28 34 views
0

自動完成ボックスを作成しようとしていますが、Fiddlerを使用して適切なJSONを取得できますが、コードで実装すると接続エラーが発生します。 コード:WCFへのjQueryのAjaxポストへの投稿

<htm> 
<Head> 
</head> 
<body> 
<input type="text" id="txt_search" name="search"> 
<span id="suggest"></span>  
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 

    $("#txt_search").keyup(function() 
    { 

     var search; 
     search = $("#txt_search").val(); 

     if (search.length > 2) 
      { 

       // Trigger AJAX request 

       $.ajax( 
       { 
        type: "POST", 
        contentType: "application/json; charset=utf-8", 
        url: "*****", 
        data: { "FirstPartOfName":"Med " }, 
        dataType: "json", 
        success: function(message) { 
         if (message.length > 0) 
          { 
          alert('It got data back....'); 
          message = "Do you mean: " + message; 
          $("#suggest").append(message); 
          } 
         else 
          { 
          alert('Nothing came back....'); 
          } 
         } 
       }  ); 
      } 
      else { 
       // Empty suggestion list 
       $("#suggest").empty(); 
       } 
    }); 

}); 
</script> 
</body> 
</html> 

私はURLを提供することはできませんが、私はそれをテストするためにバイオリンを使用して接続することができます。私はそれがWCFの問題かもしれないと思っていますが、どうすればFiddlerで正しくテストできますか?

答えて

0

contentTypeapplication/jsonに設定することで、あなたはJSONシリアライズされた形式でパラメータを送信していることをWCFに伝えますが、ネイティブオブジェクトをそのようなjQueryは、代わりにそれらのパラメータをURLエンコードすることになります。つまり、{"FirstPartOfName":"Med"}の代わりに?FirstPartOfName=Medを送信しています。ここではそれについての詳細:この簡単な場合http://encosia.com/asmx-scriptservice-mistake-invalid-json-primitive/

、あなたが明示的に代わりにJSON文字列を送信することによって、これを修正することができます

data: '{"FirstPartOfName":"Med"}' 

それは似ていますが、ワイヤ上完全に異なっています。

JSON文字列を手作業で構築するのは、最も単純なケースでは十分ですが、面倒です。代わりにuse JSON.stringify to automatically build the string from objectsでもかまいません。

+0

ポストに感謝します。私は本当にそのエラーを起こしていましたが、問題は残っています。私はまだ悪い要求400エラーを受け取ります。 – mdance

+0

@ user1120064:WCFコード/設定の一部を表示できますか? HttpPostを有効にしていますか?メソッドはPOST要求を許可するWebInvoke属性で装飾されていますか? –

+0

これは、もはや利用できなくなった個人によって実際に書かれたものであり、私はそれが正しく行われたと仮定していました。私はそれにアクセスできるかどうか私の管理者に尋ねます。 – mdance

関連する問題