2016-08-19 2 views
0

Ich versuche, eine Locke Anfrage zu replizieren, um einen PDF in Ajax zum Download bereit. Die Curl-Anforderungen werden in der PDF Filler-Dokumentation here erläutert. Die folgende Curl-Anfrage ergibt erfolgreich eine Antwort des Dateiinhalts:Konvertieren Locke GET-Anfrage an Ajax

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

ich folgende Ajax versucht haben:

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

, die die folgende Fehlermeldung ergibt:

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

I habe auch versucht, xhr für den Header, die auch den gleichen Fehler gibt:

$.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'); 
    }, 
}) 

Irgendwelche Gedanken auf, wo ich falsch gehe? Vielen Dank!

+0

Mögliche Duplikat [Origin ist nicht erlaubt Access-Control-Allow-Origin] (http://stackoverflow.com/questions/10143093/origin-is-not-allowed-by-access-control-allow-origin) – Bert

+0

Dank @Bert, aber es scheint, wie die meisten dieser Antworten gehe ich davon aus Kontrolle über den Server haben , was ich in diesem Fall nicht mache. – sjf125

+0

Dann müssen Sie den Eigentümer der Website fragen, damit Sie domänenübergreifende Anfragen ausführen können. – Bert

Antwort

2

Sie müssen auch CORS Header auf Ihre Anfrage hinzuzufügen, weil Sie eine Cross-Domain-Anfrage machen wollen. Ihr Wunsch url muss CORS lassen, sondern weil es ein API-Aufruf ist, sollte es auf ihrer Seite erlaubt sein ...

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

den Sinn macht, dass ich CORS hinzufügen müssen, aber den Code oben gab mir die gleiche Fehlermeldung ausgeführt wird:/ – sjf125

+0

Nun, SSEM es, dass 'api.pdffiller.com' nicht Cross-Domain-Anfragen erlaubt dann. @Sean Sind Sie sicher, dass Sie diese API verwenden dürfen? – eisbehr

+0

Ich denke, ich muss sie mailen, aber ich habe ein kostenpflichtiges Konto und einen API-Schlüssel. Was wäre der Sinn einer API, auf der Sie nur Curl-Anfragen anlegen können? – sjf125