Polymer 聚合物1.0铁ajax未发布数据 点击我 聚合物({ 是:“我的新应用程序”, setajax:function(){ 这是$.ajax.url=”http://127.0.0.1:8000/users/"; 这是$.ajax.generateRequest(); }, hr响应:功能(请求){ 日志(请求、详细信息、响应); log(this.$.ajax.lastResponse); log(this.$.ajax.params); } });
这不会将数据正确地发布到服务器。另外,当我将console.log放入iron-ajax.html文件中时,我发现contentType仍然设置为Polymer 聚合物1.0铁ajax未发布数据 点击我 聚合物({ 是:“我的新应用程序”, setajax:function(){ 这是$.ajax.url=”http://127.0.0.1:8000/users/"; 这是$.ajax.generateRequest(); }, hr响应:功能(请求){ 日志(请求、详细信息、响应); log(this.$.ajax.lastResponse); log(this.$.ajax.params); } });,polymer,Polymer,这不会将数据正确地发布到服务器。另外,当我将console.log放入iron-ajax.html文件中时,我发现contentType仍然设置为application/x-www-form-urlencoded。文档说我们可以通过指定contentType={String}来指定contentype 在0.5版本中,我知道核心ajax始终存在一个问题,即无法正确发送body对象。我一直在使用的工作是将身体绷紧 <dom-module id="my-new-app"> <sty
application/x-www-form-urlencoded
。文档说我们可以通过指定contentType={String}
来指定contentype 在0.5版本中,我知道核心ajax始终存在一个问题,即无法正确发送body对象。我一直在使用的工作是将身体绷紧
<dom-module id="my-new-app">
<style>
</style>
<template>
<iron-ajax
id="ajax"
handle-as="json"
content-type="application/json"
method="POST"
body={"user":2,"dob":"2015-06-10","jobs":1,"skills":[],"about":"cool"}
on-response="hresponse"
debounce-duration="3000">
</iron-ajax>
<button on-click="setajax">Click me</button>
</template>
<script>
Polymer({
is: "my-new-app",
setajax: function () {
this.$.ajax.url="http://127.0.0.1:8000/users/";
this.$.ajax.generateRequest();
},
hresponse: function(request) {
console.log(request.detail.response);
console.log(this.$.ajax.lastResponse);
console.log(this.$.ajax.params);
}
});
</script>
</dom-module>
iron ajax主体使用原始数据,因此如果需要,可以使用iron ajax内部用于参数的相同函数来生成查询后字符串参数,如下所示:
setajax: function(){
ajax.body = JSON.stringify({
"user": 2,
"dob": "2015-06-10",
"jobs": 1,
"skills": [],
"about": "cool"
})
ajax.generateRequest()
}
var Util = {
getQueryString: function (params) {
var queryParts = [];
var param;
var value;
for (param in params) {
value = params[param];
param = window.encodeURIComponent(param);
if (value !== null) {
param += '=' + window.encodeURIComponent(value);
}
queryParts.push(param);
}
return queryParts.join('&');
}
};
然后你可以这样使用它:
setajax: function(){
ajax.body = JSON.stringify({
"user": 2,
"dob": "2015-06-10",
"jobs": 1,
"skills": [],
"about": "cool"
})
ajax.generateRequest()
}
var Util = {
getQueryString: function (params) {
var queryParts = [];
var param;
var value;
for (param in params) {
value = params[param];
param = window.encodeURIComponent(param);
if (value !== null) {
param += '=' + window.encodeURIComponent(value);
}
queryParts.push(param);
}
return queryParts.join('&');
}
};
此外,如果设置body属性的方式不正确,则可以使用computed属性并生成此查询字符串
this.$.ajax.body = Util.getQueryString({
"user": 2,
"dob": "2015-06-10",
"jobs": 1,
"skills": [],
"about": "cool"
});
这不是有效的聚合物数据绑定表达式
元素中应该有一个属性,并使用正确的绑定表达式,如:
body={"user":2,"dob":"2015-06-10","jobs":1,"skills":[],"about":"cool"}
如果您设置了正确的内容类型,那么正文将正确地作为json发送。您的方法实际上对我有用 但是,body属性必须用引号括起来(所有属性都应该用引号括起来) 您可以尝试在您的案例中使用单引号:
body="{{myBodyProperty}}"
...
properties:{
myBodyProperty:{
type:Object,
value:{foo:"bar"}
}
}
我正在尝试使用polymer 1.0。我已经试过使用stringify了。我编写的调试脚本没有显示contentType中的任何更改。