我是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给了我{},这意味着对象是空的,第二个打印未定义。
我真的不知道问题所在以及如何解决问题。
非常感谢您花时间提供帮助
答案 0 :(得分:0)
您需要将application/json
添加为content-type
。
<iron-ajax method="POST" url="foo.com" content-type="application/json> </iron-ajax>