javascript - 使用 OneSignal 设置无 Access-Control-Allow-Origin

标签 javascript cors onesignal

我正在使用OneSignal用于客户端网站的网络推送消息传递。我已经关注了HTTPS setup 。我检查了几次,确保一切都正确完成。

  • 所有文件均已上传到域的根目录
  • 我已经设置了 list 并将所需的初始化代码放入页面标题中

当我加载页面时,我得到:

Fetch API cannot load https://onesignal.com/api/v1players. 
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'https://example.com' is therefore not allowed access. 
The response had HTTP status code 404. If an opaque response serves your needs, 
set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

我直接联系了团队,但他们只是复制粘贴了部分文档。没有提供进一步的帮助。

使用 Chrome 版本 58/Windows 10

我做错了什么?

最佳答案

https://onesignal.com/api/v1players 响应显然不包含 Access-Control-Allow-Origin 响应 header ,因为它们不包含,您的浏览器会阻止您的前端 JavaScript 代码访问响应。

您无法对自己的前端 JavaScript 代码或后端配置设置进行任何更改,从而使您的前端 JavaScript 代码能够按照您尝试直接向 https://onesignal.com/发出请求的方式进行请求api/v1players 并成功获取响应。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS更详细地解释了,但其要点是,对于 CORS,发送请求的服务器必须配置为发送 Access-Control-Allow-Origin 响应 header 。

无论如何https://documentation.onesignal.com/docs/web-push-sdk-setup-https有官方文档解释了他们支持的 SDK,这显然需要你做更多类似这样的事情:

<head>
  <link rel="manifest" href="/manifest.json">
  <script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async></script>
  <script>
    var OneSignal = window.OneSignal || [];
    OneSignal.push(["init", {
      appId: "YOUR_APP_ID",
      autoRegister: false,
      notifyButton: {
        enable: true /* Set to false to hide */
      }
    }]);
  </script>
</head>

关于javascript - 使用 OneSignal 设置无 Access-Control-Allow-Origin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44532182/

相关文章:

android - 深色背景下难以阅读的推送通知

javascript - C# - MVC - JSON - 使用 ViewBag 将列表从服务器端返回到客户端

javascript - 从 Django 模型中生成 JavaScript 对象

javascript - 当类成员仍然存在于页面状态时如何编写

javascript - react : Failed to compile

azure - 访问 XMLHttpRequest ' from origin xxxx 被 CORS 策略阻止 : Response to preflight. 预检请求不允许重定向

javascript - AJAX、CORS、Chrome 和 HTTP 错误代码 (401,403,404,500) 的推荐解决方案

python - Django CORS X-FirePHP 版本

android - 停止 OneSignal 通知显示在状态栏中

ios - OneSignal Push for array of vales