Доброго времени суток, господа.
Не возвращается результат POST-запроса отсылаемый серверу (приложению).
Код страницы:
<html>
<head>
<title>Application</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon"/>
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function(){
$("#myButton").click(function(){
$.ajax({
url: "http://app.ru/",
type: "POST",
data: "login=leroy&password=password",
success: function(msg){
alert(msg);
},
error: function(msg){
alert('Ошибка');
}
});
});
});
</script>
<input type="button" id="myButton" value="Нажать" />
</body>
</html>
Код сервера:
server.js
// Иодули
var http = require('http');
// Запуск сервера
function start() {
// Обработка запросов
function onRequest(request, response) {
// ...
switch(request.method)
{
case 'POST':
{
// ...
var postData = "";
// ...
request.setEncoding("utf8");
// ...
request.addListener("data", function(postDataChunk) {
// ...
postData += postDataChunk;
return;
});
// ...
request.addListener("end", function() {
// И вот тут что я только не пробовал,
// все варианты писать просто стыдно :-)
return;
});
break;
}
case 'GET':
{
// ...
var body = 'формирование html-разметки страницы';
// Установка заголовка
response.writeHead(200, {'Content-Type': 'text/html'});
// Формирвоание текста ответа
response.write(body);
// Конец ???
response.end();
break;
}
}
}
// Создание http-сервера
http.createServer(onRequest).listen(1337, '127.0.0.1');
// Информирование о запуске http-сервера
console.log('Server running at http://127.0.0.1:1337/');
}
// Экспорт функции запуска сервера
exports.start = start;
index.js
// Создание http-сервера
var server = require("./server/server");
// Запуск http-сервера
server.start();
(хотя это не так важно)
Если я реализовывал возврат как
request.addListener("end", function() {
// Установка заголовка
response.writeHead(200, {'Content-Type': 'text/plain'});
// Формирвоание текста ответа
response.write('Freddy');
// ...
response.end();
return;
});
то при жмакании на кнопку POST-запрос отправляет данные, а вот при попытке вернуть результат отладчик ("Инструменты разработчика" в Chrome) выкидывает
"POST
http://app.ru/ 403 (Forbidden) "
а если полностью то
POST
http://app.ru/ 403 (Forbidden) jquery-1.8.3.min.js:2
send jquery-1.8.3.min.js:2
v.extend.ajax jquery-1.8.3.min.js:2
(anonymous function) app.ru:12
v.event.dispatch jquery-1.8.3.min.js:2
o.handle.u jquery-1.8.3.min.js:2
Вот так прописал сервер (nginx):
Код:
|
# app.ru
server {
# ...
server_name app.ru;
# лог доступа
access_log c:/app/logs/access.log;
location / {
root c:/app;
index index.html;
error_page 403 @403;
}
location @403 {
proxy_pass http://127.0.0.1:1337;
}
} |
Подскажите пожалуйста почему у меня возникает ошибка и как будет правильно. (если такое можно без подключения доп модулей)
Заранее спасибо за любые комменты