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