4

Symfony2 を使い始めたばかりで、長い間 ZF1 開発者だったので、本当に気に入っています。

今夜、いくつかの Ajax 機能をサイトに追加し始めましたが、次の点について少し混乱しています。

私のajax呼び出しで例:

$.ajax({
    url: '/app_dev.php/ajax/urlgetter',
    data: "url="+urlinput,
    dataType: 'html',
    timeout: 5000,
    success: function(data, status){
         // DO Stuff here
    }
});

/app_dev.php を URL に追加して、開発環境で機能させる必要がありました。これを行うより良い方法はありませんか?これは、プロジェクトを本番環境に変更するときに、/app_dev.php のすべてのインスタンスを検索して置き換える必要があるということですか?? うまくいけば、単純なものを完全に見逃してしまいました。

4

3 に答える 3

3

この質問はもう古いと思いますが、同じ問題に遭遇しました。

「ベストプラクティス」のソリューションではありませんが、これが私がしていることです。

このことを完璧な方法でtwig使用できます。{{ path('yourRouteName') }}したがって、私のtwigファイルには次のような構造があります。

...    
<a href="{{ path('myRoute') }}"> //results in e.g http://localhost/app_dev.php/myRoute
    <div id="clickMe">Click</div>
</a>

誰かが div をクリックすると、 my で次のことを行います.js file

$('#clickMe').on('click', function(event) {
    event.preventDefault(); //prevents the default a href behaviour
    var url = $(this).closest('a').attr('href');
    $.ajax({
       url: url,
       method: 'POST',
       success: function(data) {
           console.log('GENIUS!');
      }  
    });
});

これは、Ajax リクエストをトリガーしたいすべての状況の解決策ではないことはわかっていますが、ここに残しておくと、おそらく誰かが便利だと思うでしょう :)

于 2013-04-17T06:53:13.583 に答える
1

このjQuery ajax関数は小枝側に配置され、URLはアプリケーションを指しているため、ルーティングパスを挿入できます

$.ajax({
    url: '{{ path("your_ajax_routing") }}',
    data: "url="+urlinput,
    dataType: 'html',
    timeout: 5000,
    success: function(data, status){
         // DO Stuff here
    }
});
于 2013-02-09T23:40:08.157 に答える