【发布时间】:2016-01-07 07:00:25
【问题描述】:
我想将发布数据发送到 Symfony 控制器,但它不起作用。当我使用 AJAX 发送数据时,它正在发送 POST 数据,但在控制台中显示红色链接,没有错误消息或状态;但净FF为200ok。它正在通过普通表单成功发送请求。
这是我的 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"
});
}
});
}
下面是form标签和js函数:
<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 控制器方法:
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();
}
...
}
【问题讨论】:
-
在 Firefox 开发者窗口的网络中相当空白。
-
你能在你的ajax请求之前把你的var“getTeamsUrl”的值发给我吗?
-
Routing.generate采用路由名称,在您的情况下addprivatetuition不是路由名称
标签: javascript php jquery ajax symfony