【问题标题】:how to add missing CORS header ‘Access-Control-Allow-Origin’?如何添加缺少的 CORS 标头“Access-Control-Allow-Origin”?
【发布时间】:2021-11-28 13:04:32
【问题描述】:

我想从另一个域获取 base64 编码图像。我在后端启用了 CORS,但出现错误:

跨域请求被阻止:同源策略不允许读取位于https://codedecoder.pythonanywhere.com/media/embed/2021/10/07/temp.jpg 的远程资源。 (原因:CORS 标头“Access-Control-Allow-Origin”缺失)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<img id="datadiv"></img>
var src = 'https://codedecoder.pythonanywhere.com/media/embed/2021/10/07/temp.jpg'

$.ajax({
  type: "GET",
  url: `https://codedecoder.pythonanywhere.com${src}`,
  crossDomain: true,
  success: function(dayta) {
    console.log(dayta);
    $('#datadiv')[0].src = dayta;
  },
})

【问题讨论】:

  • 该错误意味着您没有在服务器上正确配置CORS。这是 100% 的服务器端问题。如果 CORS 配置正确,则无需对 JS 进行任何更改。
  • 缺少标题怎么办
  • 我不确定你的意思?如果您指的是错误,则意味着从服务器返回的 response 缺少必要的 CORS 标头。
  • 是的。如何添加缺少的标题以及在哪里?
  • 你不能在前端添加它们

标签: javascript html jquery django


【解决方案1】:

您在服务器端设置 CORS 标头。这不是客户端问题。但是,出于开发目的,您可以使用 Chrome 的 CORS 扩展。在 chrome 扩展商店中查找。

【讨论】:

    【解决方案2】:

    对于 Django,请查看 django-cors-headers 包:

    https://github.com/adamchainz/django-cors-headers

    它由 Django Software Foundation 技术团队的成员维护。

    【讨论】:

      猜你喜欢
      • 2018-03-28
      • 2019-02-07
      • 2021-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-05
      • 2021-12-07
      • 2023-03-21
      相关资源
      最近更新 更多