Symfony2:JQuery请求是';t XHR

Symfony2:JQuery请求是';t XHR,jquery,ajax,symfony,xmlhttprequest,Jquery,Ajax,Symfony,Xmlhttprequest,我正在使用Symfony2开发一个简单的博客应用程序。 我想通过ajax检查登录数据: 如果数据正确->转发到另一页 如果不是->以400状态响应并设置窗体动画 我的问题是JQuery发送的请求似乎不是XHR Html: 名字 密码 Javascript: $(文档).ready(函数(){ //听一听Being提交的表格 $(“#logfo”).submit(函数(){ var url=$(“#logfo”).attr(“操作”); //发帖 $.post(url,{Name:$(

我正在使用Symfony2开发一个简单的博客应用程序。
我想通过ajax检查登录数据:

  • 如果数据正确->转发到另一页
  • 如果不是->以400状态响应并设置窗体动画
我的问题是JQuery发送的请求似乎不是XHR

Html:


名字


密码


Javascript:

$(文档).ready(函数(){
//听一听Being提交的表格
$(“#logfo”).submit(函数(){
var url=$(“#logfo”).attr(“操作”);
//发帖
$.post(url,{Name:$(“#logname”).val(),
密码:$(“#logpass”).val(),
功能(数据){
if(data.responseCode==400){
//为窗体设置动画
var fo=$(“#logfo”);
动画({left:'+=25px'},“fast”);
动画({left:'-=50px'},“fast”);
动画({left:'+=50px'},“fast”);
动画({left:'-=25px'},“fast”);
}
});
}); 
});
routing.yml:

出于测试原因,我替换了用于将请求与数据进行比较的代码
使用简单的if术语从数据库中删除。
控制器:

AjaxController类扩展控制器{
公共函数登录()
{
$request=$this->getRequest();
如果($request->isXmlHttpRequest()){
$name=$request->request->get('name');
如果($name==“page”)返回新的响应(“,400);
如果($name==“plant”)返回$this->redirect($this->generateUrl('Thank_Page');
}
否则返回$this->render('FitcompTheFitThingBlogBundle:Blog:test.html.twig',数组('hint'=>“noXHR”);
}
}

您的
提交处理程序不会阻止浏览器提交表单,因此您的XHR请求永远没有机会完成(浏览器只是先进行常规发布)。您可以通过简单地删除
$来确认这一点。post
调用——在行为上没有任何区别

通过阻止默认操作修复此问题:

$("#logfo").submit(function(event) {
    event.preventDefault();
    $.post(...);
});

您的
submit
处理程序不会阻止浏览器提交表单,因此您的XHR请求永远不会有机会完成(浏览器只是先进行常规发布)。您可以通过简单地删除
$来确认这一点。post
调用——在行为上没有任何区别

通过阻止默认操作修复此问题:

$("#logfo").submit(function(event) {
    event.preventDefault();
    $.post(...);
});

我改了,但是现在我不能提交表格了neither@Simeon字体对不起,我不明白你的意思。请更具体一些。当我点击提交按钮时,什么都没有happens@Simeon:检查浏览器的Javascript控制台是否存在错误。XHR应该被发送,但可能响应处理程序有问题?我拼错了一些东西。。。对不起,太晚了。再次感谢。我改了,但是现在我不能提交表格了neither@Simeon字体对不起,我不明白你的意思。请更具体一些。当我点击提交按钮时,什么都没有happens@Simeon:检查浏览器的Javascript控制台是否存在错误。XHR应该被发送,但可能响应处理程序有问题?我拼错了一些东西。。。对不起,太晚了。再次感谢。