簡體   English   中英

jQuery Ajax發布到WCF的請求越來越糟糕

[英]jQuery Ajax post to WCF getting bad request

我試圖創建一個自動完成框...,我可以使用Fiddler檢索適當的JSON,但是在代碼中實現時,出現連接錯誤。 碼:

<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,但是我可以使用Fiddler進行連接進行測試。 我以為WCF可能是個問題,但是我怎樣才能用Fiddler正確測試呢?

我不知道這是否是您的主要問題,但是通過將contentType設置為application/json ,您告訴WCF您正在以JSON序列化格式發送參數,但是當您將本地對象傳遞給jQuery時那,它將改為URL編碼這些參數。 換句話說,您要發送?FirstPartOfName=Med而不是{"FirstPartOfName":"Med"} 有關此的更多信息,請訪問: http : //encosia.com/asmx-scriptservice-mistake-invalid-json-primitive/

在這種簡單情況下,您可以通過顯式發送JSON字符串來解決此問題:

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

它看起來很相似,但是在導線上卻完全不同。

在最簡單的情況下,手動構建JSON字符串是足夠可行的,但是麻煩。 您還可以使用JSON.stringify來自動根據對象構建字符串

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM