.ajax отправляет и получает ответ на локальном сервере, нет ответа на веб-хосте - PullRequest
1 голос
/ 14 августа 2010

Я использую ajax-вызов для выполнения незначительных вычислений, затем возвращаю значение и отображаю его на той же странице, где отправляется форма. В Firebug он говорит, что вызывает функцию, но не получает ответа. (У меня есть похожая форма, которая пишет в базу данных, которая работает нормально, по-видимому, потому что она не нуждается в ответе - firebug говорит, что не может получить ответ и на этот скрипт.) Странно, что я написал это на своем локальный сервер до его реализации на сайте и все заработало как и планировалось. Я использую Code Igniter как на локальном сервере, так и на веб-сервере, но я не знаю, связано ли это с этим. В любом случае, любая помощь будет отличной. Я немного новичок, так что в данный момент это немного от моего царства.

Спасибо

РЕДАКТИРОВАТЬ: .js

$(document).ready(function() {

    $('#submit').click(function(){

    var formdata = {
        years: $('#years').val(),
        rate: $('#rate').val(),
        principle: $('#principle').val(),
        periods: $('#periods').val(),
        continuous: $('#continuous').val()
        }

    $.ajax({
        url: "http://localhost:8888/CodeIgniter_1.7.2/index.php/timevalueshow/submit",
        type: 'POST',
        data: formdata,
        success: function(data){
                $('#replace').replaceWith('<p>'+data+'</p>');                       
        }
    });

    return false;
});


 });

php submit function

function submit(){

    $years = $this->input->post('years');
    $rate = $this->input->post('rate');
    $principle = $this->input->post('principle');
    $periods = $this->input->post('periods');
    $isCont = $this->input->post('continuous');

    $params = array(
        'years' => $years, 
        'rate' => $rate, 
        'principle' => $principle, 
        'periods' => $periods, 
        'isCont' => $isCont
    );

    $this->load->library('timevalue', $params);

    return $this->timevalue->FVFactor();
}

Ответы [ 2 ]

0 голосов
/ 14 августа 2010

Может ли быть так, что запрос делается междоменным?Помните, что mydomain.com считается доменом, отличным от www.mydomain.com.

Недавно я столкнулся с подобной ситуацией.Я запросил страницу на mydomain.com, которая сделала AJAX-запрос к скрипту на www.mydomain.com.Запрос не был сделан, потому что он считался междоменным.У него были те же симптомы, которые вы описали.В Firebug и Chrome Developer Console я видел пустой ответ и никаких сообщений об ошибках.

Проблема в том, что CodeIgniter генерирует абсолютные URL-адреса на основе параметра $config['base_url'].Если вы заходите на сайт, используя имя домена, отличное от того, которое настроено в $config['base_url'], вы можете столкнуться с этим типом проблемы.

0 голосов
/ 14 августа 2010

Это работает на устройстве, а не на сервере, потому что вы звоните localhost !

// this will have the client call itself on this particular page (wont work)
url: "http://localhost:8888/CodeIgniter_1.7.2/index.php/timevalueshow/submit",

Код выше должен быть просто:

// this is relative to the document ROOT, will work on server but not on dev!
// you can set it relative to the calling page using ../ as needed
url: "/index.php/timevalueshow/submit",
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...