Запрос на обновление клиента работает через POSTMAN, но не через AJAX с использованием частного приложения Shopify - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь обновить тег клиента на Shopify с помощью его частного приложения.Я попробовал это с почтальоном, и все работает нормально, но через AJAX, он возвращает меня к успешному обратному вызову вместо ошибки, но в случае успеха я получаю ссылку на аутентификацию вместо записи клиента, как в почтальоне.

 $.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 ]

1 голос
/ 31 марта 2019

Вы все делаете неправильно.Если вы продолжаете подвергать свой пароль на переднем конце, как это, вы будете быстро найти кого-то будет использовать его, чтобы превратить все свои клиент в имена порно звезды, в результате чего вы потеряете свою работу, и ваш авторитет.Вместо этого вы используете прокси приложения, встроенный в ваше частное приложение, для выполнения не-CORS, безопасных и безопасных обратных вызовов без использования пароля.

0 голосов
/ 31 марта 2019

Я думаю, вам не нужно использовать 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);
    }
});
0 голосов
/ 31 марта 2019

Я не нашел продуктивного ответа / информации в интернете.Наконец, после удара и испытания с 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 не разрешает свои запросы PUT и POST, не делая crossDomain: true,

...