如何对流进行简单的http响应

时间:2011-11-21 18:33:48

标签: c# .net ajax http

我正在尝试编写一个简单的http服务器作为应用程序的一部分。它需要使用简单的文本响应来响应在127.0.0.1:someport上使用ajax提交的Http请求。 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 :(得分:0)

我怀疑您的网络服务运行正常。但是,如果您从文件URL调用它,则您的文档将无法调用localhost:12345下托管的任何URL,因为它被视为跨域。尝试在同一个网站下托管HTML和JavaScript;你可能会看到更多的成功。