我正在尝试编写一个简单的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
答案 0 :(得分:0)
我怀疑您的网络服务运行正常。但是,如果您从文件URL调用它,则您的文档将无法调用localhost:12345下托管的任何URL,因为它被视为跨域。尝试在同一个网站下托管HTML和JavaScript;你可能会看到更多的成功。