0
我发送端口的请求60080HttpListenerContext.Request.InputStream总是空
var XHR = new XMLHttpRequest();
XHR.open('GET', 'http://localhost:60080/api/products');
XHR.setRequestHeader("Content-Type", "application/json; charset=UTF-8");
XHR.body = JSON.stringify({ email: "[email protected]", response: { name: "Tester" } });
XHR.send();
,并使用HttpListener
this.listener = new HttpListener();
listener.Prefixes.Add("http://+:60080/");
listener.Start();
listener.BeginGetContext(HandleRequest, listener);
,所以我得到HttpListenerContext
HttpListenerContext context = listener.EndGetContext(result);
当我尝试收到要获得InputStream(在Android或UWP上),它始终为空。 ContentLength = 0;
当我在iOS上测试InputStream不为空和ContentLength > 0;
我的问题是什么?
UPDATE:
我解决我的问题。
我发送了一个Post方法,但实际上是方法OPTIONS。
我发送的头一个反应和随后而来的邮政法
httpListenerContext.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With");
httpListenerContext.Response.AddHeader("Content-type", "application/json");
httpListenerContext.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST");
httpListenerContext.Response.AddHeader("Access-Control-Max-Age", "1728000");
httpListenerContext.Response.AppendHeader("Access-Control-Allow-Origin", "*");
httpListenerContext.Response.Close();
哪里代码运行的每一个部分?第一部分看起来像JavaScript,这是在哪里调用的? – Cheesebaron
是的,这个JS的第一部分。它是在webview中启动应用程序时调用的。 HttpListenerContext context = listener.EndGetContext(result);在HandleRequest中调用。我解决了我的问题。查看更新。 – temiklis
您可以将解决方案添加为答案,并在24小时后接受它? – Cheesebaron