我在端口60080上发送请求
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: "hello@user.com", 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上)时,它始终为null。 ContentLength = 0;
当我在iOS InputStream上测试时不为空且ContentLength > 0;
我的问题是什么?
更新
我解决了我的问题。
我发送了一个Post方法,但实际上是方法OPTIONS。
我在回复中发送了标题,然后是Post方法
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();
答案 0 :(得分:0)
我解决了我的问题。
我发送了一个Post方法,但实际上是方法OPTIONS。
这是由于CORS技术。
我在回复中发送了标题,然后是Post方法
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();