0

ZF2 アプリケーションに jQuery ajax 呼び出しがあります。以前はうまくいきました。突然、うまくいかなくなります。存在しないアクションをリクエストに入れても、以前のようにサーバーエラーは発生しません。リクエストを受け付けていないようです。

コンソールにエラーはまったくありません。私がリクエストを行うまで、すべてがうまくいきます。これはそれが入っている機能です:

$('.expand').click(function(){
    var CCID = $(this).parent().attr('id');
    CCID = parseInt(CCID);

    console.log(CCID);                                   // Works

    if($.inArray(CCID,$expanded) > -1){
        foldin(CCID);
    } else {
        console.log('Works up to here.');                // Works
        $.post('admin/expand', {
            id: CCID
        },function(data){
            console.log('Doesn\'t log this.');           // Doesn't work
            if(data.hasOwnProperty('info')){     
                console.log('sup');
                expand(data.info);
            } else {
                console.log('Can\'t find customer info.');
            }
        },'json'); 
    }
});

前に言ったように、エラーはまったくなく、コメントしたすべてのビットをログに記録します。私が愚かな間違いを犯したことを願っています。あなたはそれを見つけることができます. もう何回も見ているのに見つからない。

誰かが見たい場合はコントローラーにアクションを追加しますが、偽のアクションを与えてもエラーが発生しないため、投稿リクエストはそれを探しているようにも見えません。

編集:以下はいくつかの追加情報です

そこで、コメント投稿者のリクエストに応じて失敗ハンドラーを追加したところ、次のように返されました。

failed [Object, "parseerror", SyntaxError]

SyntaxErrorには「予期しないトークン<」と表示されていますが、.jsファイルには何もありません。どの行/ファイルで見つかったのかを教えてくれる場所が見つかりません。おそらく役に立ちます。

これは、コントローラーで呼び出すアクションです。ただし、まったく見つからないようです:

public function expandAction(){
    $request = $this->getRequest();
    $response = $this->getResponse();

    if($request->isPost()){ 
        $post_data = $request->getPost();
        $CCID = $post_data['id'];
        $customer = $this->getCustomerTable()->getCustomer($CCID);
        $response->setContent(\Zend\Json\Json::encode(array(
            'info'      => $customer,
        )));    
    }

    return $response;
}
4

1 に答える 1

1

Arun P Johny は、Google Chrome 開発者ツールの [ネットワーク] タブを使用して問題を解決する方法を教えてくれました。そこから、パス「admin/expand」が「expand」であることがわかりました。

少しローカライズされた答えかもしれませんが、ネットワークタブを使用するという彼のアドバイスは、答えを正当化するのに十分役に立ったと思います. たぶん、ある時点で他の誰かに役立つでしょう。

于 2013-08-02T09:01:53.570 に答える