如何在使用代理在 ext js 商店中发布请求时发送 JSON
Posted
技术标签:
【中文标题】如何在使用代理在 ext js 商店中发布请求时发送 JSON【英文标题】:How to send a JSON while posting a request in ext js store using proxy 【发布时间】:2016-05-27 09:56:29 【问题描述】:我是 ext js 的新手。我正在尝试将请求正文中的 JSON 传递给服务调用。我正在使用以下代码在请求中发送 JSON。执行此操作时收到错误响应。
Ext.define('MyStore.store.dashboard.graphs.Temp',
extend: 'Ext.data.Store',
proxy:
type: 'ajax',
url: 'abc.php',
headers:
'Content-Type': 'application/json'
,
params : JSON.stringify(
locationID: [],
startDtTime: "2009-06-10T11:00:00",
endDtTime: "2016-05-10T11:00:00",
GroupValue:"",
) )
但是当我使用 Ext.Ajax.request 时,我得到了正确的响应:
Ext.Ajax.request(
url: 'abc.php',
jsonData : data,
success: function(hxr)
console.log(hxr);
,
failure: function(hxr)
console.log(hxr);
)
我在论坛上看到过类似的帖子。我的问题是,如果没有办法在使用 store 的请求中设置 json 那么我可以将从 Ext.Ajax.request 获得的响应传递给我的商店吗?
【问题讨论】:
商店不是这样运作的,你必须通过store.load(params:);
传递你的参数
我不确定这是怎么做到的。你能解释一下我如何将它与我的代码集成吗?
没有更多关于你到目前为止所做的事情的信息,我不这么认为。你用的是什么版本的 ExtJS?您正在使用控制器、视图控制器或您在哪里执行您发布的代码?
我正在使用 ext js 6。目前我还没有编写任何控制器或视图控制器。我只是想理解这一点,因为我需要稍后构建一个原型。我刚刚使用了 ext js 图表,我根据商店中的值填充了一个图表。当我使用静态 JSON 文件加载它时,这工作正常。但现在我需要将请求中的某些参数作为 JSON 发送到服务器以获得我的图表的响应。
您是否尝试添加记录然后同步?
【参考方案1】:
ExtJS 总是将 POST 值发送为 JSON,except when you submit a form with a file upload field。
But ExtJS store uses GET method for read by default,而Ext.Ajax.request
uses POST by default if parameters are defined。
但你可以明确告诉商店的代理使用 POST 方法:
proxy:
actionMethods:
read:'POST'
,
extraParams :
locationID: [],
startDtTime: "2009-06-10T11:00:00",
endDtTime: "2016-05-10T11:00:00",
GroupValue:"",
【讨论】:
谢谢。我已经尝试过了,但它仍然不起作用。我检查了 chromes 开发者控制台,它发送了一个 post 请求,这很好,但在请求的正文中没有显示任何值。 @NullPointer 对不起,我的错,这是extraParams
用于存储代理,我已经更新了代码。
这似乎也不起作用。虽然现在我碰巧在请求有效负载中看到一些文本,例如 '0=%7B&1=%22&2=l&3=o&4=c&5=a'
谢谢。但我需要将这些参数作为 JSON 对象传递,并在发布请求的正文中以上是关于如何在使用代理在 ext js 商店中发布请求时发送 JSON的主要内容,如果未能解决你的问题,请参考以下文章