Javascript 如何让NanoHTTPD响应AJAX

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

我试图让NanoHTTPD(在android设备上)以请求javascript可以解释响应的方式响应AJAX请求

我已经实现了NanoHTTPD服务方法:

    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