ajax json在本地但不在远程服务器上工作codeigniter

时间:2018-06-21 06:44:36

标签: php jquery codeigniter http-status-code-404 jquery-ui-autocomplete

访问here,前面的搜索栏将自动完成 当我在localhost上使用并将结果附加到li下时,它工作正常,但是当我在实时服务器上上传时,它显示OMNeT++

This是指向 custom.js 的链接,浏览器在该链接上显示404

主要 :Custom.js

404();

模型 :datacomplete.php

$(document).ready(function () {
$("#CompanyName").keyup(function () {
    $.ajax({
        type: "POST",
        url: "http://www.sonnify.de/reviewotter/autocomplete/GetCompanyName",
        data: {
            keyword: $("#CompanyName").val()
        },
        dataType: "json",
        success: function (data) {
            if (data.length > 0) {
                $('#Dropdowncompany').empty();
                $('#CompanyName').attr("data-toggle", "dropdown");
                $('#Dropdowncompany').dropdown('toggle');
                alert("i am here");
            }
            else if (data.length == 0) {
                $('#CompanyName').attr("data-toggle", "");
            }
            $.each(data, function (key,value) {
                if (data.length >= 0)
                    $('#Dropdowncompany').append('<li role="displayCompanies" 
                   id="displayCompanies" ><a role="menuitem 
                   dropdowncompanyli" class="dropdownlivalue">' + 
                   value['CompanyName'] + '</a></li>');
            });
        }
    });
});
$('ul.txtcompany').on('click', 'li a', function () {
    $('#CompanyName').val($(this).text());
    var CompanyName = $(this).text();
    alert(CompanyName); 
    window.location.href = "http://localhost/reviewotter/company2? 
    company="+CompanyName+"";
    //window.location.href = "http://localhost/reviewotter/company2? 
   lat="+elemA+"&lon="+elemB+"&setLatLon=Set";
});});

控制器 :autocomplete.php

<?php
class Datacomplete extends CI_Model{
public function GetRow($keyword) {        
    $this->db->order_by('Id', 'DESC');
    $this->db->like("CountryName", $keyword);
    return $this->db->get('company')->result_array();
}}

2 个答案:

答案 0 :(得分:0)

让我猜猜,本地主机在Windows计算机上,但实时服务器是Linux?那么这可能是区分大小写的问题。 Linux是区分大小写的操作系统。

模型文件datacomplete.php应该是Datacomplete.php(注意大写的第一个字符吗?),控制器autocomplete.php应该是Autocomplete.php

答案 1 :(得分:0)

您将可以通过添加自定义路线来解决此问题。请将以下行添加到application / config / routes.php文件。

$route['autocomplete/get-company-name'] = 'Autocomplete/GetCompanyName';

您将不得不根据新的URL来调整JQuery AJAX函数。也可以从URL中删除index.php。请参考下面的链接。

https://www.codeigniter.com/userguide3/general/urls.html#removing-the-index-php-file