我最近在我的symfony2包上切换了路由,以便在控制器中使用内联注释而不是routing.yml文件。之后,ajax发布请求开始没有参数。我调查了一下,注意到日志显示了帖子请求为[REQUEST_METHOD] =>得到。取消注释路线将请求转到了帖子。在切换路由之前,事情已经完成了。
这是控制器和路线
class DefaultController extends Controller
{
/**
* @Route("/emailShare/", name="emailShare")
* @Method({"GET", "POST"})
*/
public function indexAction()
和jquery ajax
$.ajax({
type : 'post',
url: '/v2/social/emailShare',
如果我使用curl发布到同一个网址,它会在日志中显示为帖子。
curl -d "param1=value1¶m2=value2" http://mysite.com/v2/social/emailShare/
答案 0 :(得分:0)
我的基于注释的路由通过POST执行Ajax调用没有问题。与您的设置有一些不同之处:我根本没有在控制器中使用@Method注释,而(FWIW)我的jQuery Ajax方法值全部都是大写。例如:
class DefaultController extends Controller
{
/**
*
* @Route("/", name="emailShare")
*/
public function indexAction()
和jQuery(我正在使用Twig设置路径):
$.ajax({
type: 'POST',
url: '{{path("emailShare")}}',
相关的routing.yml行:
AcmeDemoBundle:
resource: "@AcmeDemoBundle/Controller/"
type: annotation
prefix: /