2016-08-19 13 views
0

AjaxでPDFをダウンロードするためのCurlリクエストを複製しようとしています。 Curlリクエストは、PDF Fillerのドキュメントhereで説明されています。私は、次のAjaxを試してみたCurl GETリクエストをAjaxに変換する

curl -X "GET" "https://api.pdffiller.com/v1/fillable_template/DOCUMENT_ID/download" -H "Authorization: Bearer API_KEY_FROM_STEP1" 

$.ajax({ 
    method: 'GET', 
    url: 'https://api.pdffiller.com/v1/fillable_template/DOCUMENT_ID', 
    headers: { 
     Authorization: 'Bearer API_KEY_FROM_STEP1', 
    }, 
}) 

次のエラーメッセージが得られます

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. 

Iを以下のカール要求が成功したファイルの内容の応答を生成しますまた、ヘッダにxhrを試したところ、同じエラーが返されます:

$.ajax({ 
    method: 'GET', 
    url: 'https://api.pdffiller.com/v1/fillable_template/DOCUMENT_ID', 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader('Authorization', 'Bearer ' + 'API_KEY_FROM_STEP1'); 
     xhr.setRequestHeader('Accept-Language', 'en_US'); 
    }, 
}) 

どこが間違っていると思いますか?ありがとう!

+0

可能性のある重複した[原点は、アクセス制御 - 許可 - 起源によって許可されていません]( http://stackoverflow.com/questions/10143093/origin-is-not-allowed-by-access-control-allow-origin) – Bert

+0

おかげさまで@Bert、しかし、それらの答えのほとんどのように私はサーバー私はこのケースではしません。 – sjf125

+0

次に、サイトの所有者にドメイン間の要求を許可するように依頼する必要があります。 – Bert

答えて

2

クロスドメイン要求を行いたいので、CORSヘッダーも要求に追加する必要があります。あなたの要求urlCORSを許可する必要がありますが、それはAPI呼び出しであるので、それは彼らの側に許可する必要があります...の

$.ajax({ 
    method: 'GET', 
    url: 'https://api.pdffiller.com/v1/fillable_template/74275400', 
    crossDomain: true, 
    xhrFields: { 
     withCredentials: true 
    }, 
    headers: { 
     Authorization: 'Bearer S1qAS0YFCfUbRemx2OGaeUcmm6mni1EXK3T1FkkL', 
    }, 
}); 
+0

CORSを追加する必要があるのは理にかなっていますが、上記のコードを実行すると、同じエラーメッセージが表示されます。/ – sjf125

+0

「api.pdffiller.com」はクロスドメイン要求を許可していません。 @SeanこのAPIを使用することはできますか? – eisbehr

+0

私はそれらに電子メールを送る必要があると思うが、私は有料アカウントとAPIキーを持っている。 Curlリクエストのみを作成できるAPIのポイントは何ですか? – sjf125

関連する問題