Chrome抛出
XMLHttpRequest无法加载 http://127.0.0.1:8006/test 请求中没有
'Access-Control-Allow-Origin'
标头 资源。 因此,不允许访问来源“ http://xxx.yyy.com”。 响应的HTTP状态码为401。
我正在打开HTTP弹出窗口,并向Java创建的本地HTTP服务器发出请求。
除了在不同的机器上,它在所有机器上都能正常工作,浏览器会抛出上述错误。
据我了解,从HTTP
到HTTP
出现此错误有点奇怪。
答案 0 :(得分:2)
这一点也不奇怪-127.0.0.1:8006
和xxx.yyy.com
是不同的起源,并且Java服务器没有发送Access-Control-Allow-Origin
标头来告诉浏览器没问题。
更多详情,请访问https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
基本上,Java服务器需要添加带有允许的CORS源或通配符(允许任何源)的Access-Control-Allow-Origin
标头:
Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: http://xxx.yyy.com
(包括协议,因为http和https在浏览器中是不同的来源)答案 1 :(得分:1)
您必须在服务器端添加标头,在该标头中调用该URL来实现Web服务。 This将帮助您了解如何在Java中添加标头。
例如:
map.addMarker(new MarkerOptions()
.position(POSITION)
.title("Your title")
.icon(BitmapDescriptorFactory.fromBitmap(finalMarker))
);
如果仍然希望避免出现.header("Access-Control-Allow-Origin", "*")
错误。在这种情况下,建议您将此扩展名与chrome一起使用: Chrome extension for cors 。
这将帮助您避免仅出于开发目的而在计算机中的浏览器中出现跨源错误。