2017-10-24 7 views
0

ajax getリクエストでoauth apiトークンの詳細を使用したいが、401の不正なエラーが発生する。私はPHPファイル内の自分の資格情報をチェックしているが、私はそれを使用してajax要求を実行することはできません。ajaxリクエスト内でoauthトークンを使用したBigcommerce API呼び出し

Bigcommerceのoauthログイン用のajaxリクエスト内でヘッダーを渡す方法に悩まされています。 APIのURL:https://api.bigcommerce.com/stores/ {ストアハッシュ}/V3 /カタログ/カテゴリ

私の作業PHPコード:

$headers = array(
"Accept: application/json", 
"X-Auth-Client:".$client_id, 
"X-Auth-Token:".$auth_token 
); 
$chbig = curl_init($api_url); 
curl_setopt($chbig, CURLOPT_TIMEOUT, 60); 
curl_setopt($chbig, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($chbig, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($chbig, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($chbig, CURLOPT_RETURNTRANSFER, 1); 
$result = curl_exec($chbig); //execute post 
$http_status = (string) curl_getinfo($chbig, CURLINFO_HTTP_CODE); 
curl_close($chbig); 
echo "<pre>"; 
print_r($http_status); 
print_r($result); 

動作しないJSコード:

$.ajax({ 
    url: api_url, 
    headers: { 
    "X-Auth-Client" : client_id, 
    "X-Auth-Token" : auth_token , 
    'Accept':'application/json', 
    }, 
    dataType: 'jsonp', 
    type: "GET", 
    success: function() { alert('Success!'); } 
}); 

見つけるために私を助けてくださいソリューション...

+0

ajaxで生成されたリクエストは、cURLによって生成されたリクエストと同じに見えますか?(全く同じヘッダ、コンテンツなど?)あなたはフィドラーのようなツールを使ってそれらを比較することができます。 – ADyson

+0

いいえ、私はajaxリクエストで渡したリクエストヘッダーを取得していません –

+0

"accept application/json"と "dataType:jsonp"は互いに矛盾し、矛盾しています。私はあなたがjsonpのビットを削除する必要がありますと思う。あなたのcURLリクエストにはこれを模倣するものは何もありません.JSONを期待している場合は、JSONPコールバックを期待していません。同じことではありません。 – ADyson

答えて

1

あなたはJSONPではなくJSONを要求する必要があります。

CORSの問題を回避するために、エンドポイントのホスト名は、スクリプトが実行されているページと同じである必要があります。

さらに、フロントエンドでAPI資格情報を公開することはお勧めしません。

関連する問題