繁体   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