【问题标题】:Curl works but ajax not working in Shopify private appCurl 有效,但 ajax 在 Shopify 私人应用程序中无效
【发布时间】:2017-01-18 13:13:16
【问题描述】:

我从我的商店创建了一个私有应用程序,并尝试使用 ajax 和 curl 访问 https://API_KEY:PASS@STORE_NAME/admin/orders.json URL。如果我使用 curl 但不使用 ajax,它会起作用。谁能在这里解释问题是什么?

【问题讨论】:

    标签: ajax shopify private php-curl


    【解决方案1】:

    这可能是跨域问题。如果您使用 jQuery,请尝试将 dataType 设置为 jsonp 进行 ajax 调用,如下所示:

    $.ajax("url", {
        dataType: "jsonp",
        success: function(data) {
            console.log(data);
        }
    })
    

    【讨论】:

      【解决方案2】:

      就像其他答案所说,这是一个跨源问题(参见CORS

      通常处理它的最佳方法是Shopify App Proxy,但这不适用于私人应用,只有自定义应用。最好的办法是构建一个自定义应用程序并使用 OAuth2 进行身份验证,假设没有其他原因您选择构建一个私有应用程序。

      如果您的应用的性质允许更改为自定义应用,则应用代理将为您提供一个 {store-name}.myshopify.com/{resource} 端点,该端点将绕过跨域问题,但转发对远程服务器的请求。

      另外,当您使用 JS 并且某些东西不起作用时,请检查控制台并分享任何错误。没有人能真正告诉你为什么它不能在没有看到代码、错误或两者的情况下工作,但这是 AJAX 的一个常见的绊脚石,因为所有这些跨域安全性东西都已经到位,我 90%肯定是答案。

      【讨论】:

        猜你喜欢
        • 2015-03-26
        • 1970-01-01
        • 1970-01-01
        • 2015-11-13
        • 2018-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-19
        相关资源
        最近更新 更多