Javascript 如何让NanoHTTPD响应AJAX
我试图让NanoHTTPD(在android设备上)以请求javascript可以解释响应的方式响应AJAX请求 我已经实现了NanoHTTPD服务方法:Javascript 如何让NanoHTTPD响应AJAX,javascript,ajax,nanohttpd,Javascript,Ajax,Nanohttpd,我试图让NanoHTTPD(在android设备上)以请求javascript可以解释响应的方式响应AJAX请求 我已经实现了NanoHTTPD服务方法: public NanoHTTPD.Response serve(String uri, NanoHTTPD.Method method, Map<String, String> header, Map<String
public NanoHTTPD.Response serve(String uri, NanoHTTPD.Method method,
Map<String, String> header,
Map<String, String> parameters,
Map<String, String> files) {
String msg = "Hello, you have connected.";
return newFixedLengthResponse( msg );
}
(这只是一个例子,我尝试了success/fail/done/error方法,我尝试了指定数据类型,我尝试了返回函数中的不同参数,但都不起作用)。当运行此javascript时,NanoHTTPD服务器会很好地接收打印数据,但当它发送响应时,只会触发错误/失败方法,并且方法参数从不包含任何内容-我无法设置状态或返回消息或任何内容
我尝试过从Serve方法返回不同的结果,包括:
String mime_type = NanoHTTPD.MIME_PLAINTEXT;
String msg = "{\"status\":\"1\",\"responseText\":\"this is the response\"}";
InputStream testReply = new ByteArrayInputStream(msg.getBytes(StandardCharsets.UTF_8));
// return newFixedLengthResponse(NanoHTTPD.Response.Status.OK, "", msg);
// return new NanoHTTPD.Response( NanoHTTPD.Response.Status.OK, mime_type, testReply);
// return NanoHTTPD.newFixedLengthResponse( NanoHTTPD.Response.Status.OK, mime_type, msg);
// return NanoHTTPD.newFixedLengthResponse(msg);
这些都不管用
我还尝试了以下javascript:
$.get("http://127.0.0.1:8080", function( my_var ) {
console.log(my_var);
});
如果运行此命令,则会触发NanoHTTPD上的断点,但根本不会触发javascript方法。我认为您需要在服务器响应中添加以下标题:
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
非常感谢你,这是我错过的!最大年龄是什么?
$.get("http://127.0.0.1:8080", function( my_var ) {
console.log(my_var);
});
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400