5

我在服务器端使用 jQuery 来处理我的 ajax 请求和 Symfony 1.4 PHP。

我的问题在标题中。

如何重现:

我有一个页脚(在我的所有页面中)来显示我的网站的推文,这些推文有一种“保持活力的呼吁”来每 7 秒获得最后一条推文。

function loadNotyTweets(tweetCount) {

    var jqXhr = $.ajax({
        'url':'<?php echo url_for(array('module' => 'footer', 'action' => 'getLastApiTweets')) ?>',
        'type':'GET',
        'async':true,
        'dataType':'json',
        'cache': false
    }).done(function (data, textStatus, jqXHR) {
        if (data != null) {
            var j = 0;
            for (var i in data) {
                var text = formatNoty(data[i]['text'], data[i]['user']['screen_name'], data[i]['user']['name'], data[i]['user']['profile_image_url_https'], data[i]['created_at']),
                    hashTweet = calcMD5(text);

                if (!$.cookie(hashTweet) || $.cookie(hashTweet) != 'close') {
                    // Display a noty containing my tweet
                    generateNoty(text);
                }
                j++;
                if (j == tweetCount) {
                    break;
                }
            }
        }
    });

}

在服务器端:

function executeGetLastApiTweets(sfWebRequest $request) {
        if ($request->isXmlHttpRequest()) {

            // Get tweet using Twitter API
            $tweets = $this->getApiTweets($request);

            $lastTweet = '';
            if (isset($tweets[0]) && isset($tweets[0]['text'])) {
                $lastTweet = md5($tweets[0]['text']);
            }

            if ($this->isLastTweet($lastTweet)) {
                return $this->renderText(json_encode($this->getTweetsUI($tweets)));
            }

        }
        return sfView::NONE;
    }

现在,当我在链接上单击我的网站时(就在我的 loadTweets() 调用之后),我得到了这个 Ajax 调用的响应,而不是我单击的链接的响应。

我不知道这里发生了什么...

信息:

我的 Apache deflate 压缩处于活动状态。我认为它可能来自于此。

有,我的 Apache Conf。

    # MOD_DEFLATE COMPRESSION
    SetOutputFilter DEFLATE
    AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-javascript application/x-httpd-php
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
    Header append Vary User-Agent env=!dont-vary

    # BEGIN Expire headers
    <IfModule mod_expires.c>
     ExpiresActive On
     ExpiresDefault "access plus 7200 seconds"
     ExpiresByType image/jpg "access plus 1 days"
     ExpiresByType image/jpeg "access plus 1 days"
     ExpiresByType image/png "access plus 1 days"
     ExpiresByType image/gif "access plus 1 days"
     AddType image/x-icon .ico
     ExpiresByType image/ico "access plus 7 days"
     ExpiresByType image/icon "access plus 7 days"
     ExpiresByType image/x-icon "access plus 7 days "
     ExpiresByType text/css "access plus 7 days"
     ExpiresByType text/javascript "access plus 7 days"
     ExpiresByType text/html "access plus 7200 seconds"
     ExpiresByType application/xhtml+xml "access plus 7200 seconds"
     ExpiresByType application/javascript "access plus 7 days"
     ExpiresByType application/x-javascript "access plus 7 days"
     ExpiresByType application/x-shockwave-flash "access plus 1 days"
    </IfModule>
    # END Expire headers
# BEGIN Cache-Control Headers
<IfModule mod_headers.c>
 <FilesMatch "\\.(ico|jpe?g|png|gif|swf|gz|ttf)$">
   Header set Cache-Control "max-age=86400, public"
 </FilesMatch>
 <FilesMatch "\\.(css)$">
   Header set Cache-Control "max-age=604800, public"
 </FilesMatch>
 <FilesMatch "\\.(js)$">
   Header set Cache-Control "max-age=604800, public"
 </FilesMatch>
 <filesMatch "\\.(html|htm)$">
   Header set Cache-Control "max-age=7200, public"
 </filesMatch>
 # Disable caching for scripts and other dynamic files
 <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
   Header unset Cache-Control
 </FilesMatch>
</IfModule>
# END Cache-Control Headers

# KILL THEM ETAGS
Header unset ETag
FileETag none
4

1 回答 1

2

您将 ajax 变量声明为:

var jqXhr = $.ajax({

然后您将变量引用为:

}).done(function (data, textStatus, jqXHR) {

如果我错了,请纠正我,javascript/jquery 变量区分大小写。

于 2012-12-06T23:43:35.960 回答