jquery autocomplete搜索json POST

时间:2014-05-26 17:48:35

标签: jquery json joomla3.0

我在我的joomla模块上开发了jquery自动完成搜索。我有和问题,如果我键入json代码所在的文件路径并放http://localhost/project/modules/mod_jtory_search/tmpl/personal.php?term=c它将显示结果,这对安全性不好,任何一个建议如何使用POST方法解决这个问题?

JSON

    $db = JFactory::getDbo();
$searchp=$_GET["term"];
$searchp = str_replace(' ', '', $searchp);

$query = $db -> getQuery(true);


  $query="SELECT * FROM tent WHERE REPLACE(title, ' ', '') LIKE '%$searchp%' AND categories_id=82 order by title ASC ";

$db -> setQuery($query);
// Load the results as a list of associated arrays.
$results = $db -> loadAssocList();
$json=array();
foreach ($results as $json_result) {
    $json[] = array('value' => $json_result["title"], 'label' => $json_result["title"]);
}echo json_encode($json);

自动填充

    jQuery.noConflict();
                 jQuery(function(){
                     jQuery("#searchp").autocomplete({
                         source:'<?php echo JURI::root().'modules/mod_jtory_search/tmpl/personal.php'; ?>',
                        delay: 300 ,
                         minLength:1
                     });
                jQuery(function () {
        jQuery("#searchp").keypress(function (e) {
            if (e.keyCode == 13) {
                return false;
            }
        });
    });
});

1 个答案:

答案 0 :(得分:0)

通过GET或POST发送的信息对于知道要查找位置的人来说都是不安全且可见的。自动完成通常不应该暴露敏感的东西。但是你应该考虑通过验证而不是模糊来保护你的应用程序。

换句话说,请考虑使用HTTPS或考虑仅将其用于具有特定权限的用户。

要使用POST,您可以查看示例here,其中显示了使用AJAX调用获取自动完成数据的简单方法。然后,您需要做的就是在type来电ajax来设置POST选项,如here所示