没有成功POST数据html

时间:2015-10-13 21:03:54

标签: javascript ajax symfony

当我用ajax发出请求时我可以看到post值,但是当我看到控制台日志时它会返回给我这条消息---

  

数据没有成功

enter image description here

并且在symfony web调试工具栏中,我可以看到有没有ajax请求。

enter image description here

这是我的html代码---

<form method="post" id="searchform">
        <div align="center" class="col-md-10">
            <input  type="text" id= "contentSearch" name="contentSearch" >
        </div>
    <div class="form-group"><button type="submit" class="btn btn-default" id="submitSearch">
            Search
        </button></div>
</form>

这是我的javascript代码---

    <script>
$(document).ready(function () {
$("#searchform").on('submit', function (e) {
    $.ajax({
        url: '/home',
        type: 'post',
        data: { contentSearch : $('#contentSearch').val()},
        success: function (data) {
            console.log(data)
        }
    });

   return false;
});
});
    </script>

控制器代码---

路由代码---

content:
    path:     /home
    defaults: { _controller: AdminBundle:Home:home }

控制器代码---

<?php
namespace AdminBundle\Controller;    
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;    
class homeController extends Controller {
/**
 * @param Request $request
 * @return Response
 */
 // route of /home
function homeAction(Request $request) {

 if ($request->getMethod() == 'POST') {
 $request = $request->request->get('contentSearch');
 // do something with the  $request
 $result;
}}
return $this->render('AdminBundle:Home:home.html.twig', array(
        'pageTitle' => 'my ajax',
        'menu' => $this->menu,
        'result' => $result
            )
);

有谁知道如何解决这个问题!!!!

2 个答案:

答案 0 :(得分:-2)

提交表单时,默认行为是加载表单&#34; action&#34;带有提供的输入字段的页面。如果没有指定任何操作,它只是将值传递给当前页面并重新加载它。

http://www.w3.org/TR/html401/interact/forms.html#h-17.13.3

您需要做的是阻止表单提交,以便启动ajax请求。使用preventDefault来实现这一目标。

UIStatusBarForegroundView

答案 1 :(得分:-2)

您要两次发送表单。如果您使用$(form).on(&#39; submit&#39;)设置一个函数,那么在表单发送之前,它将执行您告诉它的任何操作。您必须添加event.preventDefault()

$(form).on('submit',function(event){
  event.preventDefault()
  // Do Ajax
})

请务必使用echo返回Ajax响应。