[英]Ajax call to Controller and XML response Symfony2
我是Symfony2的新手。 现在,我想使用Symfony2实现我以前的ajax调用实践。
我想对服务器端代码进行ajax调用,并获取XML响应并将其提取。 这是我的工作。
var data={
type:'1'
};
jQuery.ajax({
url: 'server_script/check.php', //load data
global: false,
type: "POST",
dataType: "xml",
data: data,
async: false,
success: load_data2
});
在平面php文件中,我可以捕获并使用
$type=$_POST['type'];
在Symfony2中,我通过使用AJAX进行呼叫
jQuery.ajax({
url: '{{ path('create_label') }}', //load data
global: false,
type: "POST",
dataType: "xml",
data: data,
async: false,
success: load_data2,
error: problem
});
在来自create_label的Controller中,我使用
$type->request->get('type');
我还不确定是否真的有效。 从此链接得到它链接
接下来在平面PHP中,我通过生成XML响应
header("Content-type: text/xml");
echo "<?xml version=\"1.0\" ?>\n";
echo "<Loadinglist>\n";
echo "</Loadinglist>";
它给了我在function load_data2(xmlindata)
方法中提取的响应。
现在,我无法在Symfony2中进行任何有效的XML响应。 我尝试了一些技巧,但没有一个起作用。 我想从Controller发送一个XML响应,捕获它并使用load_data2
方法提取。 如果您有时间,请提供一个Wiki类型的答案,说明xml响应工作是如何完成的。
(注意,在平面php中,我可以在控制台或firebug中检查XML响应,我可以在Symfony2中查看该响应)
要获取POST参数,最好是显式的并使用$request->request->get('type')
。 这只会获取POST参数“ type”,而不会获取GET参数“ type”。
接下来,控制器始终返回Response
。 此类可以视为实际HTTP响应的PHP端口。 因此,您可以对其进行调整以返回XML。
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class YourController // ...
{
function someAction(Request $request)
{
// ...
$response = new Response(<<<EOX
<?xml version="1.0" ?>
<Loadinglist>
</Loadinglist>
EOX
);
$response->headers->set('Content-Type', 'text/xml');
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.