[英]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.