我正在学习Symfony,现在正在尝试连接 AJAX 和Symfony。我把Ajax放在twig中的javascript块之间,并把非常简单的函数放在控制器文件中,以检查它是否工作,但发现它不工作。在Ajax中不显示警报,在控制台中也不显示转储($r)。
这是我 AJAX 脚本,位于twig文件“”中
{%block javascripts %}
<script language = "javascript">
$(document).ready(function () {
$("#customize").on("click", function (event) {
$.ajax({
url: "{{ 'test/ajax' }}",
type: 'POST',
async: true,
dataType: 'json',
data:{
id:1,
text: 'hello'
}
}).done(function(data) {
alert('yes');
}).fail(function() {
alert('no');
})
});
});
</script>
{%endblock%}
'''
这是连接到 AJAX 的Anker。“”
{{form_start(form)}}
{{form_widget(form)}}
{{form_end(form)}}
<a href="#" id="customize" name="customize" class="btn-basic">Customize</a>
“'
这是控制器文件“”
/**
* @Route("/test/ajax", name="ajax_edit")
*/
public function ajaxAction(Request $request){
$r = $request->request->get('data');
dump($r);
}
'''
我猜Anker没有回应,即使我点击它。但我不知道如何解决这个问题。
1条答案
按热度按时间mzsu5hc01#
为了确保您的TWIG模板中有正确的URL,您应该使用
path()
方法来生成使用路由名称的URL:正如Bossman所说,您的路由必须返回一个JsonResponse:
当然,如果你想检查响应内容,你应该打开你的浏览器控制台,在网络选项卡,并检查请求响应。打开控制台在正确的选项卡,然后点击按钮#自定义。