Не работает: отправка POST-данных с помощью Ajax на контроллер Symfony2

0

Я бы хотел отправить Post Data в Symfony Controller, но это не сработает. Когда я отправляю свои данные с помощью AJAX, он отправляет данные POST, но он показывает красную ссылку в консоли без сообщения об ошибке или состояния; но 200ok в чистом FF. Он успешно отправляет запрос через обычную форму.

Вот мой код Javascript:

function addprivate() {
    var form_data = $('#private_tuition').serialize();
    var getTeamsUrl = Routing.generate('addprivatetuition', {
        id: form_data
    });
    $.ajax({
        type: "post",
        url: getTeamsUrl,
        data: form_data,
        success: function(response) {
            if (response) {

            } else {

            }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            $.notify('Error : Record not found !!', {
                "status": "danger",
                "pos": "top-center"
            });
        }
    });
}

Ниже приведен тег формы и js funxtion:

<form method="post" role="form" id='private_tuition' action="{{base_url}}/privatetutionpdf/" >
    <button type="submit" class='btn btn-primary' onclick='addprivate()' name="btn-save">
        <strong>Generate PDF for client</strong>
    </button>

Вот метод PHP Symfony Controller, который получил данные:

namespace Suntec\Marcus\AssignmentBundle\Controller;
use Symfony\Component\HttpKernel\Bundle\Bundle;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Security\Core\SecurityContextInterface;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;

class DefaultController extends Controller
{
....
    /*****************************************************************/
    /**
    * @Route("/addprivatetuition", name="addprivatetuition", options={"expose"=true})
    * @Template()
    */
    public function addprivatetuitionAction(){

        return array();
        //return array();
    }
...

}
  • 0
    Скорее пусто в сети в окне разработчика Firefox.
  • 0
    Можете ли вы выслать мне значение вашего var "getTeamsUrl" перед вашим запросом ajax?
Показать ещё 1 комментарий

1 ответ

0

похоже, что вам нужно предотвратить действие формы по умолчанию, потому что, когда вы нажимаете кнопку отправки, будет отправлена форма html.

только для отправки через javascript do sth. как:

$('#private_tuition').submit(function(e){ 
   e.preventDefault();    
}

или

$('#private_tuition').submit(function(){ 
    return false;    
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню