铁ajax聚合物体在服务器端空

时间:2017-04-03 15:59:24

标签: javascript ajax polymer

我是Polymer,Javascript和Ajax的新手,所以我在实现我想要的东西方面遇到了一些困难。

我希望有一个客户端将2个数据(数字和字符串)发送到服务器端,以便将其存储到mysql数据库中。

除了使用Ajax连接进行数据传输之外,我设法做了几乎所有事情。我可以连接双方但由于某种原因收到的身体是空的。这是我的代码: `

<link rel="import" href="../bower_components/polymer/polymer.html">
<link rel="import" href="../bower_components/iron-icons/iron-icons.html">
<link rel="import" href="../bower_components/paper-slider/paper-slider.html">
<link rel="import" href="../bower_components/iron-ajax/iron-ajax.html">
<link rel="import" href="../bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html">

<dom-module id="icon-toggle-demo">
  <template>
    <style>
      :host {
        font-family: sans-serif;
      };
    </style>


<h3>Rating</h3>

    <paper-slider id="ratings" pin snaps min="1" pin snaps max="4" max-markers="4" step="1" value="5"></paper-slider>

    <h3>Commentaire</h3>
    <iron-autogrow-textarea id="comment" label="Commentaire"></iron-autogrow-textarea>

    <!-- curly brackets ({{}}} allow two-way binding --> 
    <button on-click="f">Soumettre</button>
    <p id="noteR">[[text]]</p>
    <p id="commentR">[[text2]]</p>

<iron-ajax 
id="request" 
url="/request" 
method="POST" 
on-response="_refresh"
body: {note: 6, comment: "TUT"}>
</iron-ajax>
  </template>

  <script>
    Polymer({
      is: "icon-toggle-demo",
      properties: {
        text: {value: ""},
        text2: {value: ""}
      },
      f: function() {
        var body = {"note": this.querySelector("#ratings").value,
        "comment": this.querySelector("#comment").value
        };

        this.$.request.body = body;
        console.log(this.$.request.body);
        this.$.request.generateRequest();
        this.set("text","Vous avez mis une note de: "+document.getElementById("ratings").value);
        this.set("text2",document.getElementById("comment").value); 
      }
    });
  </script>
</dom-module>

`

这是来自客户端,console.log确实为我提供了正确的变量和正确的值,所以一切看起来都不错。

现在是服务器端:

    var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  res.sendFile("C:/Users/combesb/Desktop/ServeurPoly/index.html");
});

//Javascript insert sql request
router.post('/request', function(req, res, next){

console.log(req.body);
console.log(req.body.comment);

});

第一个console.log给了我{},这意味着对象是空的,第二个打印未定义。

我真的不知道问题所在以及如何解决问题。

非常感谢您花时间提供帮助

1 个答案:

答案 0 :(得分:0)

您需要将application/json添加为content-type

实施例

<iron-ajax method="POST" url="foo.com" content-type="application/json> </iron-ajax>