jQuery状态待定

I'm experiencing a bit of a strange behaviour when making an ajax request with Jquery, the request stays forever in 'pending' state.

As you can see I AM getting the 200 Ok status back, but I have no idea what else it wants.

Any help would be appretiated.

Its a very simple GET request:

function validateZipcode(event){
  definitionObj = j(this).data("definition");
  url = baseUrl+"/address/ajax/validateZip/zipcode/"+this.value;
  ajaxObj = j.ajax({url: url,success:function(result){
     handleValidateZip(result.evalJSON(),definitionObj);
  }});
 } `

Raw HTTP response headers are as follows:

HTTP/1.1 200 OK
Date: Wed, 11 Dec 2013 05:30:30 GMT
Server: Apache/2.4.4 (Unix) PHP/5.4.19 OpenSSL/1.0.1e mod_perl/2.0.8-dev Perl/v5.16.3
X-Powered-By: PHP/5.4.19
Set-Cookie: DBGSESSID=1%3Bd%3D1%2Cp%3D0; path=/; version=1
frontend=1jtnhn5g02vt7nhvmm0ekomb55; expires=Wed, 11-Dec-2013 06:30:31 GMT; path=/somePath;     domain=SomeDomain.com; httponly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
P3p: CP="CAO PSA OUR"
Status: 200 OK
Content-Length: 96
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: application/json

And the contents follows: {"city":"N\/A","state":"DISTRITO FEDERAL","colonies":["HERMANOS SERDAN","PERIODISTA"],"ok":true}

EDIT: I don't think the server side code is relevant in this case, but here it is:

 class GattacaWebLab_Addressvalidation_AjaxController extends Mage_Core_Controller_Front_Action
    {

        /**
        * Returns a JSON object with the state corresponding to the zip and cities that belong to the zip
        * @throws Exception
        */
        public function validateZipAction()
        {
            $zipcode=$this->getRequest()->getParam('zipcode');

            $colonyCollection = Mage::getModel('addressvalidation/colony')->getCollection();
            $colonyCollection->addFieldToFilter('ZIP', $zipcode);
            $cityName=$colonyCollection->getFirstItem()->getCity()->getData('CIUDAD');
            $stateName=$colonyCollection->getFirstItem()->getState()->getData('ESTADO');
            $colonies = array();

            foreach($colonyCollection as $colony)
            {
                $colonies[]=$colony->getData('COLONIA');
            }

            if(sizeof($colonies)>0)            
                $response = array('city' => $cityName, 
                    'state' => $stateName,
                    'colonies'=>$colonies,
                    'ok' => true,
                );
            else
                $response = array('ok'=>false);

            $response=Mage::helper('core')->jsonEncode($response);

            $this->getResponse()
            ->setHeader("Status","200 OK",true)
            ->setHeader('Content-Type', 'application/json')
            ->setBody($response);

            //And voilá mon ami! C'est fini


        }

    }

Three possibilities jump to mind:

  1. You aren't loading the page from baseUrl, so you are getting a cross-origin error.
  2. There's an error occurring in the Ajax processing, but you don't have an error callback, so it's silenced.
  3. There's an error in your success callback (does the result object really have a getJSON function?) that you're not noticing.