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