从http网页请求本地资源时,响应是401错误

时间:2018-12-21 12:47:58

标签: javascript cors

Chrome抛出

  

XMLHttpRequest无法加载       http://127.0.0.1:8006/test       请求中没有'Access-Control-Allow-Origin'标头       资源。       因此,不允许访问来源“ http://xxx.yyy.com”。       响应的HTTP状态码为401。

我正在打开HTTP弹出窗口,并向Java创建的本地HTTP服务器发出请求。

除了在不同的机器上,它在所有机器上都能正常工作,浏览器会抛出上述错误。

据我了解,从HTTPHTTP出现此错误有点奇怪。

2 个答案:

答案 0 :(得分:2)

这一点也不奇怪-127.0.0.1:8006xxx.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

这将帮助您避免仅出于开发目的而在计算机中的浏览器中出现跨源错误。