2010-08-04 2 views
3

У меня возникла проблема с отправкой строки JSON с использованием dojo.xhrPost в контроллер Zend Framework.Публикация строки JSON с использованием dojo.xhrPost

Когда я отправляю строку на сервер, я не получаю никаких данных. Я даже попробовал просто отправить «тестовую строку», даже если она не отправляется.

Я сделал дамп var, чтобы увидеть содержимое запроса, но ясно как день, нет параметров или данных того, что я публикую. Мой код выглядит следующим образом:

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, если это помогает.

Спасибо,

ответ

3

Если вы используете postData передать в содержание, вам нужно использовать dojo.rawXhrPost вместо dojo.xhrPost.

0

Попробуйте content вместо postData. Кроме того, загрузите Firebug (firefox), инструменты разработчика (chrome/IE) или Fiddler и посмотрите, как выглядит фактический исходящий HTTP-запрос.

Смежные вопросы