Почему Ajax-скрипт не работает локально? - PullRequest
0 голосов
/ 20 сентября 2008

У меня проблема с тем же фрагментом кода, который отлично работает на моем живом веб-сайте, но не на моем локальном сервере разработки.

У меня есть функция Ajax, которая обновляет div. На работающем сайте работает следующий код:

self.xmlHttpReq.open("POST", PageURL, true);
self.xmlHttpReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
self.xmlHttpReq.setRequestHeader("Content-length", QueryString.length);
//..update div stuff...
self.xmlHttpReq.send(QueryString);

Когда я пытаюсь запустить это на своем локальном компьютере, в QueryString ничего не передается.

Однако, чтобы запутать, следующий код работает локально:

self.xmlHttpReq.open("POST", PageURL+"?"+QueryString, true);
self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
//..div update stuff..
self.xmlHttpReq.send(QueryString);

Но я не могу использовать код, который работает на моем локальном компьютере, поскольку он не работает на реальном сервере (они изменили свою политику в отношении строк запросов по соображениям безопасности)!

Я могу предупредить строку запроса, чтобы я знал, что она передана в функцию на моем локальном компьютере. Единственное, о чем я могу думать, это то, что это проблема с аппаратным обеспечением / обновлением.

Live Site работает под управлением IIS 6 (я думаю, на WIN 2003)

Локальный сайт работает под управлением IIS 5.1 (в XP Pro)

Есть какие-то обновления или что-то я пропускаю или что-то?

Ответы [ 2 ]

1 голос
/ 20 сентября 2008

Есть ли причина, по которой вы явно устанавливаете заголовок Content-Length в первом примере? Вы ... не должны делать это, и я не удивлюсь, если это вызовет проблемы.

О, и проверь свою кодировку. Правила не совсем одинаковы для строк запросов и данных формы POST.

0 голосов
/ 20 сентября 2008

Я бы предположил, что Shog9 прав, и что IIS 6 достаточно умен, чтобы игнорировать ваш запрос и отправлять правильные заголовки, в то время как 5.2 выдает ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...