使用 dojo.xhrPost 发布 JSON 字符串
Posted
技术标签:
【中文标题】使用 dojo.xhrPost 发布 JSON 字符串【英文标题】:Posting JSON string using dojo.xhrPost 【发布时间】:2010-08-04 14:18:48 【问题描述】:我在尝试使用 dojo.xhrPost
将 JSON 字符串发布到 Zend 框架控制器时遇到问题。
当我将字符串发布到服务器时,我没有收到任何数据发送。我什至尝试只发送“测试字符串”,即使没有发送。
我已经做了一个 var dump 来查看请求的内容,但很清楚,我发布的内容没有参数或数据。我的代码如下所示:
var jsonStr = dojo.toJson(values);
var xhrArgs = (
url:"/dojo/savedetails/",
postData: jsonStr,
handleAs: "text",
load: function(data)
if(data == 'success')
//success code
dojo.byId('edit_alert').innerhtml = '<div class="info">Your changes have been saved</div>'
else
dojo.byId('edit_alert').innerHTML = '<div class="error">We were unable to save your changes please try again.</div>';
);
//we now post the data to the server for processing.
var deferred = dojo.xhrPost(xhrArgs);
我var_dump($this->_request)
的内容是:
object(Zend_Controller_Request_Http)#118 (14) ["_paramSources":protected]=>
array(2) [0]=> string(4) "_GET" [1]=> string(5) "_POST" ["_requestUri":protected]=> string(25) "/dojo/savedetails/"
["_baseUrl":protected]=> string(0) "" ["_basePath":protected]=> NULL ["_pathInfo":protected]=> string(25) "/dojo/savedetails/" ["_params":protected]=>
array(3) ["controller"]=> string(4) "dojo" ["action"]=> string(18) "savedetails" ["module"]=> string(7) "default" ["_aliases":protected]=> array(0)
["_dispatched":protected]=> bool(true) ["_module":protected]=> string(7) "default" ["_moduleKey":protected]=> string(6) "module"
["_controller":protected]=> string(4) "dojo" ["_controllerKey":protected]=> string(10) "controller" ["_action":protected]=>
string(18) "savedetails" ["_actionKey":protected]=> string(6) "action"
我希望我遗漏了一些简单的东西,但是我一直在关注 dojotoolkit.org 上的文档,从他们的示例中这应该可以工作。
如果有帮助的话,我正在使用 Dojo 1.3 和 Zend Framework 1.9。
谢谢,
【问题讨论】:
【参考方案1】:如果使用postData
传递内容,则需要使用dojo.rawXhrPost
而不是dojo.xhrPost
。
【讨论】:
【参考方案2】:尝试content
而不是postData
。另外,加载 Firebug (firefox)、Developer Tools (chrome/IE) 或 Fiddler,看看实际发出的 HTTP 请求是什么样的。
【讨论】:
以上是关于使用 dojo.xhrPost 发布 JSON 字符串的主要内容,如果未能解决你的问题,请参考以下文章