Shopify API跨域Ajax请求

时间:2017-09-26 06:24:28

标签: api cors cross-domain shopify

我使用以下代码从shopify获取客户详细信息。我已将我的域名从shopify管理员重定向到其他域名。

function setEmailWithLoggedInUser(callback) {
$.ajax({
      url: 'https://new-website-shopify.myshopify.com/admin/customers/'+__st.cid+'.json',
      crossDomain: true,
      beforeSend: function(xhr) {
           xhr.setRequestHeader("Authorization", "Basic XXXXXXXXXXXX")
      }, success: function(data){

          console.log(data);

          if(callback)
            callback();      
         }
})  

我做了很多工作,但无法找到解决方案。 我收到了这个错误:

  

无法加载资源:服务器响应状态为404   (未找到)

     

XMLHttpRequest无法加载   https://new-website-shopify.myshopify.com/admin/customers/7094124372.json。   对预检请求的响应未通过访问控制检查:

     

请求时没有'Access-Control-Allow-Origin'标头   资源。原因'https://www.beirutshopping.com'因此不是   允许访问。响应的HTTP状态代码为404.

2 个答案:

答案 0 :(得分:2)

我会用这个答案为你节省一些麻烦。您无法从商店的前端呼叫/ admin,因为这会将您的访问令牌公开给公众。相反,如果您想从前端访问API,请使用App Proxy模式,允许您安全地进行Ajax调用以实现您的目标。

实际上,你几乎肯定会失败,而你成功存在的任何成功都会很快让你的店铺暴露在恐怖之中。就像被悲伤的熊猫取代一样,或者被其他人搞砸。

答案 1 :(得分:0)

var cors = require('cors');
router.use(cors({
    origin: '*'
})); 
//var config = require('../config/config.json'); 
//testing /* GET home page. */ 
router.get('/', function (req, res, next) {
    res.setHeader("Content-Type", "application/liquid");
    res.setHeader("Access-Control-Allow-Origin", "*");
    res.render('index', {
        title: 'Store Locator'
    });
});