Curl工作,但ajax无法在Shopify私有应用程序中工作

时间:2017-01-18 13:13:17

标签: ajax shopify private php-curl

我已从我的商店创建了一个私人应用,并尝试使用ajax和curl点击https://API_KEY:PASS@STORE_NAME/admin/orders.json网址。如果我使用curl但不使用ajax,它可以正常工作。谁能解释一下这是什么问题?

2 个答案:

答案 0 :(得分:0)

这可能是一个跨国问题。如果您正在使用jQuery尝试进行ajax调用,dataType设置为jsonp,如下所示:

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

答案 1 :(得分:0)

就像另一个答案所说的,这是一个跨源问题(请参阅CORS

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

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

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