ajaxAllowURL() public static method

public static ajaxAllowURL ( $url1, $url2 = null, $url3 = null )
Example #1
0
 /**
  * @param Zend_Http_Client $xhr
  */
 public static function browserReceive($xhr)
 {
     phpQuery::debug("[WebBrowser] Received from " . $xhr->getUri(true));
     // TODO handle meta redirects
     $body = $xhr->getLastResponse()->getBody();
     // XXX error ???
     if (strpos($body, '<!doctype html>') !== false) {
         $body = '<html>' . str_replace('<!doctype html>', '', $body) . '</html>';
     }
     $pq = phpQuery::newDocument($body);
     $pq->document->xhr = $xhr;
     $pq->document->location = $xhr->getUri(true);
     $refresh = $pq->find('meta[http-equiv=refresh]')->add('meta[http-equiv=Refresh]');
     if ($refresh->size()) {
         //			print htmlspecialchars(var_export($xhr->getCookieJar()->getAllCookies(), true));
         //			print htmlspecialchars(var_export($xhr->getLastResponse()->getHeader('Set-Cookie'), true));
         phpQuery::debug("Meta redirect... '{$refresh->attr('content')}'\n");
         // there is a refresh, so get the new url
         $content = $refresh->attr('content');
         $urlRefresh = substr($content, strpos($content, '=') + 1);
         $urlRefresh = trim($urlRefresh, '\'"');
         // XXX not secure ?!
         phpQuery::ajaxAllowURL($urlRefresh);
         //			$urlRefresh = urldecode($urlRefresh);
         // make ajax call, passing last $xhr object to preserve important stuff
         $xhr = phpQuery::ajax(array('type' => 'GET', 'url' => $urlRefresh, 'dataType' => 'html'), $xhr);
         if ($xhr->getLastResponse()->isSuccessful()) {
             // if all is ok, repeat this method...
             return call_user_func_array(array('phpQueryPlugin_WebBrowser', 'browserReceive'), array($xhr));
         }
     } else {
         return $pq;
     }
 }