簡體   English   中英

聚合物使用發布方法將數組發送到服務器

[英]Polymer send array to server using post method

我想向服務器發送一些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在日志中顯示錯誤消息。 它說參數無法理解簡單數組。 我認為數組需要轉換為json。 我嘗試使用stringfy,但是它不起作用。 可能我做錯了嗎? 我有數組組成的簡單數字。 我的服務器端也使用PHP。

嘗試將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/

如果數據顯示在chrome開發控制台(或任何開發控制台)的請求正文中,則您的錯誤是服務器端。 如果使用php,則可以使用此命令捕獲請求正文。

 <?php $request_body = file_get_contents('php://input'); ?>

如果使用另一種語言,我不能幫助您。 我在創建聚合物表格並將數據發送到數據庫進行存儲時遇到問題。 這是該帖子,它可能會對您有所幫助。 使用紙張輸入和芯軸的聚合物形式

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM