【问题标题】:Chrome MJPEG CORS "invalid response" when img.crossOrigin="Anonymous"当img.crossOrigin =“匿名”时,Chrome MJPEG CORS“无效响应”
【发布时间】:2016-03-04 02:58:10
【问题描述】:

Image from origin 'http://192.168.1.67:5555' has been blocked from loading by Cross-Origin Resource Sharing policy: Invalid response. Origin 'http://127.0.0.1:8000' is therefore not allowed access.

我需要允许此 MJPEG 流的跨源,因为用户必须能够使用按钮捕获图像并且没有 CORS,画布会被污染。

我在 FF 和 Chrome 中遇到了这个问题(IE 使用不同的视频源,因为它不支持 MJPEG)。

我的服务器在提供页面时也会返回Access-Control-Allow-Origin: *。在设置img.crossOrigin = "Anonymous"; 之后,图像src 正在Javascript 中设置(如果可能相关)。 如果我删除 crossOrigin="Anonymous",流会加载,但我会收到受污染的画布错误。

谢谢 编辑:来自wireshark,MJPEG请求:

GET /2d HTTP/1.1 Host: 192.168.1.67:5555 Connection: keep-alive Accept: image/webp,image/*,*/*;q=0.8 Origin: http://127.0.0.1:8000 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36 Referer: http://127.0.0.1:8000/ Accept-Encoding: gzip, deflate, sdch Accept-Language: en-US,en;q=0.8,it;q=0.6,pt;q=0.4

HTTP/1.0 200 OK Access-Control-Allow-Origin: * Access-Control-Allow-Methods: GET Access-Control-Allow-Headers: Content-Type Content-Type: multipart/x-mixed-replace; boundary=--myboundary

【问题讨论】:

  • 您是否也为option 请求提供服务?
  • 如果 CORS 浏览器发出 2 个请求:第一次飞行前 OPTIONS 并且只有当所有标头设置正确时,才会出现正确的请求。详细说明请看here
  • 就我所见,没有OPTIONS 请求。浏览器发出GET 请求。我用从 WIreshark 捕获的标题更新了问题。
  • 我也为此苦苦挣扎。这是用于生产用途吗?如果没有,那么您可以disable web security 并尝试使用 crossOrigin 属性(我不记得我是完全删除了该属性还是保留了它)。最后,如果不对图像流源进行硬编码,我就无法克服这个错误,即<img src="http://...">
  • 我有同样的问题,在我的情况下,我在Access-Control-Allow-Method 中有OPTIONS。你解决了吗?

标签: javascript google-chrome cross-domain mjpeg


【解决方案1】:

使用此命令运行您的 chrome chrome.exe --disable-web-security 应该可以解决跨域问题

我有一个 chrome 快捷方式,这是它的目标:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security

【讨论】:

    猜你喜欢
    • 2018-03-18
    • 2011-03-02
    • 2017-04-25
    • 2016-08-05
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    • 2021-04-20
    相关资源
    最近更新 更多