客户更新请求是通过POSTMAN处理的,而不是通过Shopify私有应用通过AJAX处理的

时间:2019-03-31 09:49:42

标签: javascript ajax postman shopify shopify-app

我正在尝试使用Shopify的私人应用程序更新Shopify上的客户标签。我用邮递员尝试了一下,一切正常,但是通过AJAX,它使我成功回调而不是出错,但成功后我得到了auth链接,而不是像进入邮递员那样获得客户记录。

 $.ajax({
    type: "POST",
    url: "https://secret:password@store-name.myshopify.com/admin/customers/1569902297146.json",
    contentType: 'application/json',
    data: JSON.stringify({
       customer: {
         id: "1569902297146",
         email: "example@gmail.com",
         tags: "loyalty-member"
       }
     }),
    success: function(msg, b ,b) {
        console.log(msg);
    },
    error: function(a, b, c) {
        console.log(msg);
    }
});

3 个答案:

答案 0 :(得分:1)

您做错了所有事情。如果您继续这样在前端公开密码,您会很快发现有人会使用该密码将您的所有客户变成色情明星的名字,结果您将失去工作和信誉。相反,您可以使用私有应用程序内置的应用程序代理执行非CORS,安全可靠的回调,而无需输入密码。

答案 1 :(得分:0)

我在互联网上找不到任何有效的答案/信息。 最后,在使用AJAX进行试用和试用后,我可以获得成功的结果。

$.ajax({
    type: "POST",
    url: "https://secret:password@store-name.myshopify.com/admin/customers/1569902297146.json",
    contentType: 'application/json',
    crossDomain: true,
    data: JSON.stringify({
       customer: {
         id: "1569902297146",
         email: "example@gmail.com",
         tags: "loyalty-member"
       }
     }),
    success: function(msg, b ,b) {
        console.log(msg);
    },
    error: function(a, b, c) {
        console.log(msg);
    }
});

真正的英雄是 crossDomain 。我不知道为什么Shoify在不做crossDomain的情况下不允许其PUT和POST请求:true,

答案 2 :(得分:0)

我认为您不需要使用JSON.stringify

像对象一样发送数据

$.ajax({
    type: "POST",
    url: "https://secret:password@store-name.myshopify.com/admin/customers/1569902297146.json",
    contentType: 'application/json',
    data: {
       customer: {
         id: "1569902297146",
         email: "example@gmail.com",
         tags: "loyalty-member"
       }
     },
    success: function(msg, b ,b) {
        console.log(msg);
    },
    error: function(a, b, c) {
        console.log(msg);
    }
});