带有 com.sun.net.httpserver 的 CORS

Posted

技术标签:

【中文标题】带有 com.sun.net.httpserver 的 CORS【英文标题】:CORS with com.sun.net.httpserver 【发布时间】:2016-05-20 16:27:06 【问题描述】:

我正在使用此代码,但 Chrome 不会显示标题,似乎没有添加:

Headers headers = httpExchange.getResponseHeaders();
headers.add("Access-Control-Allow-Headers","x-prototype-version,x-requested-with");
headers.add("Access-Control-Allow-Methods","GET,POST");
headers.add("Access-Control-Allow-Origin","*");

httpExchange.sendResponseHeaders(responseCode, responseBody.length());
OutputStream os = httpExchange.getResponseBody();
os.write(responseBody.getBytes());
os.close();

我做错了什么?

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,但我用以下代码解决了我的问题:

httpExchange.getResponseHeaders().add("Access-Control-Allow-Origin", "*");

    if (httpExchange.getRequestMethod().equalsIgnoreCase("OPTIONS")) 
            httpExchange.getResponseHeaders().add("Access-Control-Allow-Methods", "GET, OPTIONS");
            httpExchange.getResponseHeaders().add("Access-Control-Allow-Headers", "Content-Type,Authorization");
            httpExchange.sendResponseHeaders(204, -1);
            return;
        

// Write here the code to GET requests

这对我有用。

【讨论】:

以上是关于带有 com.sun.net.httpserver 的 CORS的主要内容,如果未能解决你的问题,请参考以下文章

osgi (bndtools) 中的 Restlet 包无法启动。激活程序错误 com/sun/net/httpserver/HttpHandler

restlet 2.3.5 org.restlet包导入eclipse出现的com.sun.net.httpserver类包找不到问题

实现Http Server的三种方法

如何为嵌入式码头/弹簧安全启用 HTTP 摘要?

带有多个链接的 NSAttributedString 的 UILabel,带有行限制,显示尾部截断,带有未见文本的 NSBackgroundColorAttributeName

使用带有 uuencode 的“sendmail”发送邮件,并带有主题