【问题标题】:Dojo XhrPost set name for posted json object on serverDojo XhrPost 为服务器上发布的 json 对象设置名称
【发布时间】:2014-04-16 15:41:49
【问题描述】:

我有一个 Dojo ajax 请求,我将数据发布为 json 但是数据没有以 json 格式到达服务器。我也无法在控制台的浏览器 Net 选项中看到 JSON 选项卡。我需要服务器上 json 格式的数据。

Ajax 请求

 var someData = [{id:"1",age:"44",name:"John"},
                           { id:"2",age:"25",name:"Doe"},
                           { id:"3",age:"30",name:"Alice"}];

    function SendData() {

   var xhrArgs = {
        url:'processData',
        postData: someData,
         handleAs: "json",
         headers: { "Content-Type": "application/json", "Accept": "application/json" },

        load:function(data){
            console.log('data was posted');
        },
        error:function(error){
            console.log(error);
        }
    };
    dojo.xhrPost(xhrArgs);

服务器详情截图

我希望下面的 JSON 数据以以下格式显示在名为 MyData 的下面。这种格式在服务器上怎么可能?

JSON

MyData              [Object{id:"1",age:"44",name:"John"},
                     Object{ id:"2",age:"25",name:"Doe"},
                     Object{ id:"3",age:"30",name:"Alice"}]

来源

{"MyData":[{id:"1",age:"44",name:"John"},
               { id:"2",age:"25",name:"Doe"},
               { id:"3",age:"30",name:"Alice"}]}

【问题讨论】:

  • 为什么你的 url:'' 是空的,在 url 中设置你的操作
  • 网址是强制性的。提供你的 servlet/actionclass 的路径或任何东西。
  • 更新了代码。发布此问题时,我只省略了网址。该代码仍在尝试发布,但我更感兴趣的是按说明发布 json 数据

标签: ajax json dojo http-headers


【解决方案1】:

实际上 url:'' 在您的 Ajax 调用中是空的。请提供操作网址,

假设

url: "AddTrackServlet"

【讨论】:

    【解决方案2】:

    在玩弄了这个变量之后,我发现它可以被声明了

    var someData = [{id:"1",age:"44",name:"John"},
                               { id:"2",age:"25",name:"Doe"},
                               { id:"3",age:"30",name:"Alice"}];
    var formData = {MyData:someData}
        function SendData() {
    
       var xhrArgs = {
            url:'processData',
            postData: dojo.toJson(formData),
             handleAs: "json",
             headers: { "Content-Type": "application/json", "Accept": "application/json" },
    
            load:function(data){
                console.log('data was posted');
            },
            error:function(error){
                console.log(error);
            }
        };
        dojo.xhrPost(xhrArgs);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-11
      • 2013-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多