【问题标题】:CORS error when using shopify admin api in front end在前端使用shopify admin api时出现CORS错误
【发布时间】:2021-09-20 07:27:57
【问题描述】:

我有 shopify admin api,我想在前端调用它,但是当我尝试获取数据时,它给了我以下错误“在 'https://API_KEY:PASSORD@NAME.myshopify. com/admin/api/2021-07/orders.json' from origin'null' 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:没有“Access-Control-Allow-Origin”标头出现在请求的资源上。”,我使用 axios 和 fetch 都没有工作。 任何帮助都将不胜感激。

【问题讨论】:

  • 是的,管理 API 并不意味着直接从浏览器调用。原因:您可能需要使用超级机密的 API 密钥,而在浏览器中没有什么是机密的,所以这是矛盾的。
  • 你能告诉我如何解决这个问题吗?
  • 从您的服务器而不是您的浏览器调用 API
  • 如果我无权访问服务器,我可以用其他方式吗
  • 我不这么认为。如果您正在调用的服务器不允许 CORS,那么您不太可能设法从浏览器中调用它。如果是偶尔,可能来自 Postman 之类的工具?

标签: javascript shopify-api


【解决方案1】:

好问题!这也是我遇到的一个。 Shopify 故意阻止 CORS 请求。为了向您的后端发出请求,您需要设置一个Shopify APP Proxy 以便您的前端与之通信。

这基本上是做什么的,它是否允许您的前端向 app/api/v1/orders_endpoint 发出请求,然后 Shopify 会将其路由到 https://yourapp.com/api/v1/orders_endpoints

查看Shopify documentation 了解更多信息。验证签名的代码在 Ruby 中,但一些快速的 google foo 也会在 Javascript 中出现结果,请参阅stack overlow post

【讨论】:

    【解决方案2】:

    你应该在请求中使用标头 标头:{"Access-Control-Allow-Origin":"*"}

    【讨论】:

    • 我试过了,但没用
    猜你喜欢
    • 2021-03-09
    • 2019-09-28
    • 2020-10-04
    • 1970-01-01
    • 1970-01-01
    • 2019-02-10
    • 2017-08-06
    • 2021-04-14
    • 2016-06-10
    相关资源
    最近更新 更多