Joh*_*auß 6 ajax jquery json symfony
我目前正在开发一个基于symfony2的项目,它有很多ajax用法.
现在我想通过$.ajax();(POST类型)发送JSON 并在symfony2控制器中处理它.但我不太确定如何访问控制器内的JSON.
现在我有以下内容:
JS:
$.ajax({
url: url,
type:"POST",
data:json,
success:function (data) {
$('div.tooltip p').html(data);
}
});
Run Code Online (Sandbox Code Playgroud)
和PHP:
public function registrationAction(Request $request) {
if($request->getMethod() == 'POST') {
// How to receive??
}
return $this->render('KnowHowERegistrationBackendBundle:Create:registration.html.twig');
}
Run Code Online (Sandbox Code Playgroud)
我唯一不知道的是如何访问JSON?我确信这很容易,我只是看不到它.谢谢你的帮助!
Lha*_*zzi 15
在你的ajax请求中你必须将内容类型设置为application/json:
$.ajax({
url: url,
type:"POST",
contentType: 'application/json',
data:json,
success:function (data) {
$('div.tooltip p').html(data);
}
});
Run Code Online (Sandbox Code Playgroud)
并在您的控制器中使用它来解析内容:
if($request->getMethod() == 'POST') {
if (0 === strpos($request->headers->get('Content-Type'), 'application/json')) {
$data = json_decode($request->getContent(), true);
$request->replace(is_array($data) ? $data : array());
}
}
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息,请查看Silex的这本食谱http://silex.sensiolabs.org/doc/cookbook/json_request_body.html
我认为你的代码不完整,如果你想以 json 格式将数据发送到服务器,我认为设置 $.ajax 像这样,只是示例
$.ajax({
url: url,
type:"POST",
data:"JSONFile=" + json,
success:function (data) {
$('div.tooltip p').html(data);
}
});
Run Code Online (Sandbox Code Playgroud)
添加参数 JSONFile 或任何你想要的东西。你可以使用 json 解码从客户端检索 json。
这是 php 中的代码:
$json = $_POST['JSONFile'];
var_dump(json_decode($json));
var_dump(json_decode($json, true)); //true option if you will convert to array
Run Code Online (Sandbox Code Playgroud)
在 symfony2 控制器中直接访问$_POST是不好的所以使用请求
$request = $this->getRequest();
$request->request->get('JSONFile'); // get a $_POST parameter
| 归档时间: |
|
| 查看次数: |
16486 次 |
| 最近记录: |