Shopify API跨域Ajax请求

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shopify API跨域Ajax请求相关的知识,希望对你有一定的参考价值。

我使用以下代码从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。

答案

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

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

另一答案
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'
    });
});

以上是关于Shopify API跨域Ajax请求的主要内容,如果未能解决你的问题,请参考以下文章

web api 跨域请求,ajax跨域调用webapi

前端Jquery-Ajax跨域请求,并携带cookie

跨域 jQuery .AJAX 问题

AJAX跨域请求JSONP获取JSON数据的实例代码

使用mui.ajax完成跨域请求

ajax 跨域请求