我想将一些int数组发送到服务器,但我现在还没有意识到这一点。我尝试使用core-ajax,我也知道聚合物-ajax,但它被弃用了。
我做了类似的事情:
<template>
<paper-fab on-tap="{{sendMethod}}"></paper-fab>
<core-ajax id="post_ajax"
...some attr...
body={"some_array":"{{some_array}}"}
>
</core-ajax>
</template>
<script>
Polymer('el-name',{
ready: function(){
this.some_array = [];
},
sendMethod: function(){
this.$.post_ajax.go();
},
someMeth: function(){
this.some_array = data;
}
});
</script>
但数据并不丰富服务器。当我看起来调试时,我看到在体内没有检测到该数组,但我尝试只获得一个值:
body={"some_array":"{{some_array[0]}}"}
检测到值,但服务器没有获得值。
我看到我不使用表格,但似乎不需要那里或我错了。
更新
经过一些测试,我发现了一些有趣的东西。如果我使用BODY数据不是丰富的服务器,但如果我使用PARAMS数据则是丰富的服务器。它适用于简单的数值,但是当我尝试发送数组时,core-ajax会在日志中显示错误消息。它说params不理解简单的数组。我认为数组需要转换为json。我尝试使用stringfy但它不起作用。可能是我做错了什么?我有数组包含简单的数字。我的服务器端也使用PHP。答案 0 :(得分:0)
尝试JSON.stringify(obj)到正文内容。
<core-ajax id="ajax"
method="POST"
contentType='application/json'
url="..."
body='{{ajaxbody}}'
handleAs="json" response="{{resp}}">
</core-ajax>
....
Polymer('x-elem', {
ajaxbody:'',
pobj:{foo:100,data:{x:200,y:120}},
sendMethod: function(){
this.ajaxbody = JSON.stringify(this.pobj);
this.$.ajax.go();
}
});
jsbin示例http://jsbin.com/vojuz/
答案 1 :(得分:0)
如果数据显示在chrome dev控制台(或任何开发控制台)的请求主体中,则您的错误是服务器端。如果使用php,您可以使用此命令捕获请求正文。
<?php $request_body = file_get_contents('php://input'); ?>
如果使用其他语言,我无法帮助你。我有一个问题,即创建聚合物表单并将数据发送到数据库进行存储。这个帖子也许会帮到你。 polymer form using paper-input and core-ajax