C# POST 三个参数(a,b,c)a是json格式,
这个我可以搞定,用json检测是能正常显示的b=3000;c=abcdefg假如url='192.168.1.100:9090/apply'这个post要怎么写呢,搞了好几天都报400错误

解决方案 »

  1.   

    $.post(url,{a,b,c},function(){});a是json其实就是字符串
    b是数字
    c是字符串后端接收对应参数就是 
    public void Method(string,int,string)
    {}
      

  2.   

    https://blog.csdn.net/lw1242189467/article/details/80048407
    这个,我一般是直接写成对象:
    var data = {}
    data["a"] = a
    data["b"] = b
    data["c"] = c
    其中,a是Json完全无所谓,
    就算发上去是application/json的类型,那段a数据也不会有影响.
    如果a={"xx":"xxdata"}
    因为到时候的代码会是{"a":"{\"xx\":\"xxdata\"}","b":3000,"c":"abcdefg"}
    a的值,会同样是字符串,而不是json
      

  3.   

    https://blog.csdn.net/yenange/article/details/84634230你参考这个来做就可以了。
      

  4.   

    很简单啊,首先用NuGet引入jQuery库和Newtonsoft.Json,前端代码:
    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta charset="utf-8" />
        <title>jQuery Ajax</title>
        <script src="Scripts/jquery-3.4.1.min.js"></script>
    </head>
    <body>
        <input type="button" value="传值" onclick="postData()" />
        <script>
            function postData() {
                $.ajax({
                    url: 'Handlers/TestHandler.ashx',
                    type: 'post',
                    dataType: 'json',
                    data: {
                        a: '张三',
                        b: '3000',
                        c: 'abcdefg'
                    },
                    success: function (data) {
                        alert(data.a + ',' + data.b + ',' + data.c);
                    }
                })
            }
        </script>
    </body>
    </html>后台代码:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using Newtonsoft.Json;namespace WebApplication2.Handlers
    {
        /// <summary>
        /// TestHandler 的摘要说明
        /// </summary>
        public class TestHandler : IHttpHandler
        {        public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";            // 获取参数
                string a = context.Request["a"].ToString();
                string b = context.Request["b"].ToString();
                string c = context.Request["c"].ToString();            // 回传数据
                var data = new
                {
                    a = a,
                    b = b,
                    c = c
                };            context.Response.Write(JsonConvert.SerializeObject(data));
            }        public bool IsReusable
            {
                get
                {
                    return false;
                }
            }
        }
    }
    别自己去拼写json了,Newtonsoft.Json这么好的库不用干啥~
      

  5.   

    a=json&b=1&c=2
      

  6.   


    我也这么试过,结果报错为 错误 的请求,我把这三个参数再组成一个json,用这个提交 倒是能正常反回服务器预设的报错