【问题标题】:Calling WCF Service Using jquery Ajax failed with bad request response使用 jquery Ajax 调用 WCF 服务失败,请求响应错误
【发布时间】:2020-07-14 11:23:31
【问题描述】:

使用 jquery-Ajax 调用 wcf Web 服务失败,请求错误,但不知道具体问题。 它甚至没有调用任何方法成功或失败。 Web 服务和网站都使用 iis 部署在同一台服务器上

错误:

Failed to load resource: the server responded with a status of 400 (Bad Request)

代码用于调用服务方法:

function test(){
     try {

       
        code = getValuesWrittenInTheURL[0] + "";

       
        var query = "select taskstatus,tasksubstatus,Lat,Lng,elementID from tasks_gvt where code = '" + code + "'";
        
        $.ajax({
            type: "POST",
            async: true,
            url: IP + "/GetData", 
            data: JSON.stringify({ Query: query }),
            dataType: "json",
            success: function (data) {
                debugger;
                console.log("data: ",data);
           
            },
            failure: function (errMsg) {
                debugger;
                console.log("err",errMsg);
                
            }
           
        });
    } catch (error) {
        console.log("alaaError", error.message);
    }
    
}

wcf web 服务运营合约:

 [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, UriTemplate = "GetData", BodyStyle = WebMessageBodyStyle.WrappedRequest)]
        Response GetData(String Query);

准备为您提供更多详细信息。

【问题讨论】:

    标签: javascript jquery ajax wcf iis


    【解决方案1】:

    下面是我成功接入服务的ajax,大家可以参考一下:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>Ajax</title>
        <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
        </script>
        <script>
    $(document).ready(function(){
        $("button").click(function () {
            code = "code";
            var query = "select taskstatus,tasksubstatus,Lat,Lng,elementID from tasks_gvt where code = '" + code + "'";
            da={"Query":query}
            $.ajax({
                type: "Post",
                dataType: "json",
               contentType: "application/json;charset=utf-8",
               data: JSON.stringify(da),
                url: "http://localhost/Service1.svc/GetData", success: function (result) {
            }});
        });
    });
        </script>
    </head>
    <body>
    
    
        <button>Call WCF Rest Service</button>
    
    </body>
    </html>
    

    你需要设置contentType,我看到你设置了BodyStyle为Wrapped,如果设置为Wrapped,请求格式应该是这样的:

    {"Query":query}
    

    【讨论】:

      猜你喜欢
      • 2014-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-11
      相关资源
      最近更新 更多