gpt4 book ai didi

javascript - 为什么 ajax 返回代码 500 [ symfony3 ]

转载 作者:行者123 更新时间:2023-12-01 05:27:05 25 4
gpt4 key购买 nike

祝大家有美好的一天。我在 symfony3 中遇到 ajax 请求问题。在本例中,它返回代码 200,一切正常。这是“脏”代码示例,但是使用“好”代码我得到代码 500 的响应。我知道 this语法更合适。所以问题是如何修复适用于 symfony 文档的语法。

 /**
* @Route("/ajax", name="ajax_handler")
*/
public function ajaxAction(Request $request) {

if ($request->isXMLHttpRequest()) {
if(isset($_POST['secret']))
echo json_encode(array('ok'=>1));
exit;
}
}

为什么如果我编写适合“所有已知”语法的代码,它会返回代码 500?

  /**
* @Route("/ajax", name="ajax_handler")
*/
public function ajaxAction(Request $request) {

if ($request->isXMLHttpRequest()) {
// echo json_encode(array('ok' => 1));
// exit;

$response = new Response(json_encode(array('name' => $name)));
$response->headers->set('Content-Type', 'application/json');

return $response;
}
}

enter image description here

JavaScript:

$(document).ready(function () {

$(".add-one-email").click(function () {

var data = {"test": 1};

data = $.param(data);

$.ajax({
type:"POST",
dataType:"JSON",
url:"/ajax",
data: data,
success:function (s) {
alert(s['ok']);
}
});
});

});
<小时/>
if ($request->isXMLHttpRequest()) {
$response = new Response('sadasdasd');
return $response;
}
<小时/>
In upper case it returns 500 StuckTrace:The controller must return a response | in vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php at line 171 |  if (null === $response) {
$msg .= ' Did you forget to add a return statement somewhere in your controller?';
}
throw new \LogicException($msg);

最佳答案

这种语法效果很好

use Symfony\Component\HttpFoundation\JsonResponse;

return new JsonResponse(array('ok' => 1));

问题是我使用的是旧语法,看起来它在 symfony3 中不起作用,但这段代码运行良好。

关于javascript - 为什么 ajax 返回代码 500 [ symfony3 ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39169678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com