Javascript 使用iron ajax发布json对象作为应用程序/x-www-form-urlencoded
在我基于聚合物的应用程序中,我希望使用花哨的JavaScript模型绑定到输入元素 但是,我希望将模型发布到我的Spring控制器,作为经典的formdata执行,这样我就可以利用Spring SessionAttributes 我将iron ajax设置为:Javascript 使用iron ajax发布json对象作为应用程序/x-www-form-urlencoded,javascript,json,spring-mvc,polymer,Javascript,Json,Spring Mvc,Polymer,在我基于聚合物的应用程序中,我希望使用花哨的JavaScript模型绑定到输入元素 但是,我希望将模型发布到我的Spring控制器,作为经典的formdata执行,这样我就可以利用Spring SessionAttributes 我将iron ajax设置为: <iron-ajax id="saveMailing" method="POST" url="/api/mailing" content-type="application/x-www-form-urlenc
<iron-ajax id="saveMailing"
method="POST"
url="/api/mailing"
content-type="application/x-www-form-urlencoded"
on-response="mailingSaved">
</iron-ajax>
this.mailing
是一个JSON对象。它不是FormData()
结果是在iron request.html:421中出现了一个JavaScript错误“无法读取属性toString of null”
有可能做我想做的事吗?我的意思是传递一个JSON对象,并期望它将其转换为FormData。或者我没有正确使用iron ajax吗?假设您肯定
这一点。邮件不是null
,您需要首先将其字符串化:
this.$.saveMailing.body = JSON.stringify(this.mailing);
你还没有告诉我们这是从哪里来的。邮件
看起来像iron ajax认为它是空的。我肯定用了iron ajax
和new FormData()
样式的数据集。一旦你添加了上面的this.mailing
定义,你肯定会忽略一些愚蠢或小的东西。this.mailing是一个json对象,它不是空的。我相信真正的问题是:iron ajax能将JavaScript对象转换成FormData()吗?我已经尝试过了,现在又重新尝试过了。。。但它也不起作用。事实上,它可以发布帖子,但不是表单数据,而是JSON字符串。因此JSON.stringify()可以工作,但不会转换为表单数据。您是否在服务器端使用PHP?我发现自己不得不使用$\u POST=json\u decode(file\u get\u contents('php://input",对),代码>。我使用Spring控制器,即Java,以及ModelAttribute注释,该注释将表单数据直接解析为对象。
this.$.saveMailing.body = JSON.stringify(this.mailing);