Непокорный XMLHttpRequest

Статус
Закрыто для дальнейших ответов.

kein

Частный случай
Регистрация
23.11.2009
Сообщения
446
Тестировал скрипт на локалке, все работало и работает нормально. Но после заливки на хост пошли проблемы.
джиквери посылал запрос, но ответа не получал, пришлось сделать свою функцию и проверять в чем дело. Оказалось сервер возвращает 404 код. Начал исследовать заголовки, и выяснил не приятную вещь.

http://****.ru/search.php

POST /search.php HTTP/1.1
Host: ****.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://****.ru/
Content-Length: 91
Cookie: PHPSESSID=e7cf6cf4e803f24d0ef83897808b8b11
Pragma: no-cache
Cache-Control: no-cache
xy=30.349932,59.914096&lang=EN&check1=0&check2=0&check3=0&check4=0&check5=0&check6=0&type=3

HTTP/1.x 303 OK
Server: nginx/0.4.13
Date: Fri, 27 Nov 2009 14:19:09 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: no-cache, must-revalidate
Expires: Sat, 26 Jul 1997 05:00:00 GMT
X-Powered-By: PHP/5.2.0-8+etch7
Location: http://****.ru/arch.php
То есть по непонятным причинам сервер меня перенаправляет на не существующий скрипт, грамотно срезая две буквы 'se' в строке '/search.php'

не могу понять в чем дело, ведь на локалке все нормально
 

blackcot

Well-Known Member
Регистрация
10.09.2009
Сообщения
439
Возможно дело в .htaccess, там не стоит никаких правил редиректа?
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
Покажите запрос jQuery
 

Creator

Administrator
Команда форума
Регистрация
03.03.2005
Сообщения
1 745
Скорее всего проблема в rewrite правилах. Посмотрите, что у вас в конфиге nginx.

P.S. Предполагаю, что у вас свой VDS/VPS/VS
 

kein

Частный случай
Регистрация
23.11.2009
Сообщения
446
Вот код отправки запроса
Код:
ajax('/search.php','xy='+get('xy').value+'&'+
		'lang='+language+'&'+
		'check1='+ischecked('heck1')+'&'+
		'check2='+ischecked('heck2')+'&'+
		'check3='+ischecked('heck3')+'&'+
		'check4='+ischecked('heck4')+'&'+
		'check5='+ischecked('heck5')+'&'+
		'check6='+ischecked('heck6')+'&'+
		'type='+gettype()/*'xy=30.4,59.9&type=2'/*{lang:'EN',xy:'30.4,59.9',type:'2'}*/,function(xml){
		var xml = $(xml.responseXML);
		...
Код функции
Код:
function ajax(url, data, request_functn) {
    var http_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }
    if (!http_request) {
        alert('Не вышло, Невозможно создать экземпляр класса XMLHTTP ');
        return false;
    }
    alert(url+"\n"+data);
    http_request.open('POST', url, true);
    //Send the proper header information along with the request
    http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    http_request.setRequestHeader("Content-length", data.length);
    http_request.setRequestHeader("Connection", "close");
    http_request.onreadystatechange = function() { XMLHTTP_readyState(http_request,request_functn); };
    http_request.send(data);
}

function XMLHTTP_readyState(http_request,request_functn) {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            request_functn(http_request);//.responseText);
        } else {
    		alert(http_request.getAllResponseHeaders());
        	alert(http_request.responseText);
            alert('С запросом возникла проблема. Error code = '+http_request.status);
        }
    }
}
хтакес
Код:
Options -MultiViews
DirectoryIndex index.php

AddHandler x-httpd-php .php
AddType text/html php

RewriteEngine On

RewriteBase /

# тут конкретные правила по скриптам, но отшошения не имеют к поиску совсем
Не джиквери потому что понадобилось узнать что возвращает сервер

Скорее всего проблема в rewrite правилах. Посмотрите, что у вас в конфиге nginx.

P.S. Предполагаю, что у вас свой VDS/VPS/VS
Неа, обычный хостинг
 

kein

Частный случай
Регистрация
23.11.2009
Сообщения
446
Как всегда парил мозг всем из-за своей невнимательности, сессия переписывала переменные состояния, и выше в модулях случался редирект. Topic colsed.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ