使用JSONP响应的简单Java HTTP Server应用程序

问题描述

我想用JSONP响应创建一个非常简单的HTTP服务器Java。
这是代码:

public static void main(String[] args) throws Exception {
     HttpServer server = HttpServer.create(new InetSocketAddress(8500),0);
      HttpContext context = server.createContext("/test");
      context.setHandler(Sample::handleRequest);
      server.start();
     System.out.println("Server started on port 8500");
    }    
 
 private static void handleRequest(HttpExchange exchange) throws IOException {
      JSONObject json = new JSONObject("{\"weight\":\"23400\"}");
      exchange.getResponseHeaders().add("Access-Control-Allow-Origin","*");
      exchange.getResponseHeaders().add("Access-Control-Allow-Headers","origin,content-type,accept,authorization");
      exchange.getResponseHeaders().add("Access-Control-Allow-Credentials","true");
      exchange.getResponseHeaders().add("Access-Control-Allow-Methods","GET,POST,PUT,DELETE,OPTIONS,HEAD");
      exchange.getResponseHeaders().set("contentType","application/json; charset=UTF-8");
      exchange.sendResponseHeaders(200,json.toString().getBytes().length);
      OutputStream os = exchange.getResponseBody();
      os.write(json.toString().getBytes());
      os.close();
  }

和客户:

$(document).ready(function () {
        $.ajax({
            url: 'http://localhost:8500/test/',type: "GET",dataType: "jsonp",data: { no: 120 },contentType: 'application/json',success: function (data) {
                $('#txtWeight').val(data);
            },error: function (err) {
                console.log( err);
            }
        });
    });

我遇到的问题与HTTP处理程序有关。 Chrome返回:
跨源读取阻止(CORB)阻止了跨域响应http:// localhost:8500 / test /?callback = jQuery34109210173679568667_1603222391566&no = 120&_ = 1603222391567具有MIME类型为text / plain

请您看看是否有问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)