私は以下のコードを使用して、shopifyから顧客の詳細を取得しています。私はshopify管理者から自分のドメインを他のドメインにリダイレクトしました。Shopify APIクロスドメインAjaxリクエスト
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();
}
})
解決策を見つけることができませんでした。 私はこのエラーを取得しています:
Failed to load resource: the server responded with a status of 404 (Not Found)
XMLHttpRequest cannot load https://new-website-shopify.myshopify.com/admin/customers/7094124372.json . Response to preflight request doesn't pass access control check:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' https://www.beirutshopping.com ' is therefore not allowed access. The response had HTTP status code 404.
*「サーバーが404(Not Found)の状態で応答しました」*が根本的な問題です。 「No-Access-Control-Allow-Origin」ヘッダーが要求されたリソースに存在する唯一の理由は、「ほとんどのサーバーが4xxにAccess-Control-Allow-Originヘッダーのようなヘッダーを追加しないということですエラーレスポンス - 代わりに、サーバーは一般的に2xxの成功応答にそれらのヘッダーを追加します。ブラウザのアドレスバーに 'https:// new-website-shopify.myshopify.com/admin/customers/7094124372.json'というURLを(実際のホスト名が何であれ)貼り付けるとどうなりますか? – sideshowbarker
ブラウザに実際のホスト名を使用して「https://new-website-shopify.myshopify.com/admin/customers/70 94124372.json」を貼り付けると、同じドメイン名にリダイレクトされます。 api資格情報を取得し、正しく応答を示します。 – user3326941
あなたは 'https:// new-website-shopify.myshopify.com/admin/customers /'を制御しますか?あなたはそれに設定を変更することができますか?どのサーバーバックエンドが実行されますか?ここで打つ問題は、https://stackoverflow.com/questions/45557941/401-error-jwt-token-not-found-using-fetch/45559433#45559433にある回答と同じであるようです。その答えのCORSプリフライト*セクションを避ける方法も参照してください。https://stackoverflow.com/questions/43871637/no-access-control-allow-origin-header-is-present-on-the-requested- resource-whe/43881141#43881141これを回避するいくつかの方法があります。 – sideshowbarker