我需要快速帮助。请帮我弄清楚问题。
我有一个客户端的项目,即在codeigniter框架中。 我的客户需要在他们的网站上自动完成。我尽力使它工作。一切都很好我根据教程编写MVC。 但是我的脚本没有返回任何内容
我的自动完成视图
<link rel="stylesheet" href="<?php echo $this->config->item('view_path');?>autocomplete/ui.theme.css" type="text/ css" media="all" />
<script src="<?php echo $this->config->item('view_path');?>autocomplete/1.4.3.jquery.min.js" type="text/javascript"></script>
<script src="<?php echo $this->config->item('view_path');?>autocomplete/1.8.6.jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(this).ready( function() {
$("#postcode").autocomplete({
minLength: 1,
source:
function(req, add){
$.ajax({
url: "<?php echo base_url(); ?>home/lookup",
dataType: 'json',
type: 'POST',
data: req,
success:
function(data){
if(data.response =="true"){
add(data.message);
}
},
});
},
select:
function(event, ui) {
$("#result").append(
"<li>"+ ui.item.value + "</li>"
);
},
});
});
</script>
我的自动完成控制器是
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Autocomplete extends CI_Controller {
function index()
{
$this->load->view('autocomplete');
}
function lookup(){
// process posted form data (the requested items like province)
$keyword = $this->input->post('term');
$data['response'] = 'false'; //Set default response
$query = $this->MAutocomplete->lookup($keyword); //Search DB
if( ! empty($query) )
{
$data['response'] = 'true'; //Set response
$data['message'] = array(); //Create array
foreach( $query as $row )
{
$data['message'][] = array(
'id'=>$row->PC_POST_CODE,
'value' => $row->PC_TOWN.' '.$row->PC_POST_CODE,
''
); //Add a row to array
}
}
if('IS_AJAX')
{
echo json_encode($data); //echo json string if ajax request
}
else
{
$this->load->view('autocomplete/index',$data); //Load html view of search results
}
}
}
/ *文件结束autocomplete.php / / 位置:./ application / control / autocomplete.php * /
和Model在示例中也相同。
当我在防火墙的控制台中看到我看到此消息但没有结果。
http://yaashinii.com/maxsurge/tyrechangr/index.php/home/lookup 200 OK 3.28s
网站链接是您可以访问的。
http://yaashinii.com/maxsurge/tyrechangr/
我还检查当我只使用simpe ajax调用时,同样的结果也是如此。甚至当我改变控制器方法只显示结果时,让我说改变
function lookup(){
echo 'waheed'; exit;
}
即便如此结果
http://yaashinii.com/maxsurge/tyrechangr/index.php/home/lookup 200 OK 3.28s
请帮助我这是一个新问题,我不明白为什么会这样。
答案 0 :(得分:1)
我得到了解决方案。
我正在访问此地址http://www.yaashinii.com/maxsurge/tyrechangr/
,但我已将codeigniter的配置文件中的基本网址定义为http://yaashinii.com/maxsurge/tyrechangr/index.php/
,因此它成为一个跨域。和ajax不允许跨域访问。您可以看到我使用www
和基本网址访问时没有www
。