问题描述
我想用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 (将#修改为@)