Как мне сделать простой http ответ на поток - PullRequest
0 голосов
/ 21 ноября 2011

Я пытаюсь написать простой http-сервер как часть приложения.Он должен отвечать на запросы Http, отправленные с помощью ajax на 127.0.0.1:someport, простым текстовым ответом.Приложение javascript будет опрашивать (или, в конечном итоге, longpoll) информацию о действиях локальных пользователей.

На данный момент у меня есть httpListener, который вызывает следующее в рамках обработки обратного вызова:

    private void ProcessRequest(HttpListenerContext context)
    {
        var stream = context.Response.OutputStream;
        var resp = Encoding.UTF8.GetBytes("This is a test response" + DateTime.Now.ToShortTimeString() + "\r\n\r\n");
        stream.Write(resp, 0, resp.Length);
        stream.Close();
    }

Который выдает результат при вызове из браузера, но ошибку при вызове с $ .ajax.

Какой минимум мне нужно вернуть, чтобы получить успешный ответ на запрос, такой как

    $.ajax({
        url: 'http://127.0.0.1:12345/',
        dataType: 'text',
        success: function (data) {
            $('#res').html(data);
        },
        error: function(jqXHR, textStatus, errorThrown)
        {
            alert(textStatus);
        }

    }
    );

Редактировать: Я считаю, что я избежал проблем межсайтового скриптинга, запустив

 netsh http add urlacl url=http://*:12345/app user=domain\user

и могу проследить, что ProcessRequest называется

1 Ответ

0 голосов
/ 21 ноября 2011

Я подозреваю, что ваш веб-сервис работает нормально. Однако если вы вызываете его по URL-адресу файла, ваш документ не сможет вызывать URL-адреса, размещенные на локальном хосте: 12345, поскольку он считается междоменным. Попробуйте разместить HTML и JavaScript на одном веб-сайте; Вы можете увидеть больше успеха в этом.

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