2016-07-28 10 views
3

Ich versuche, den Curl-Code von einer API namens TextRazor in Jquery AJAX wegen einer Plattform Einschränkungen zu konvertieren. Ich habe viele Lösungen aus ähnlichen Fragen von der Community ausprobiert, kann aber anscheinend keine Daten zurück erhalten (über den Alarmdialog). Wenn es darauf ankommt aus der Dokumentation der API-Aufruf sieht wie folgt aus:

curl -X POST \ 
-H "x-textrazor-key: YOUR_API_KEY" \ 
-d "extractors=entities,entailments" \ 
-d "text=Spain's stricken Bankia expects to sell off..." \ 
https://api.textrazor.com/ 

Mein aktueller AJAX-Code wie folgt aussieht:

$.ajax({ 
url: "https://api.textrazor.com/", 
type: "POST", 
dataType: 'json', 
data: { 
    x-textrazor-key: "YOUR_API_KEY", 
    extractors: "entities,entailments", 
    text:"Spain's stricken Bankia expects to sell..." 
}, 
success:function(data) { 
    alert(JSON.stringify(data)); 
},error: function(xhr) { 
    alert("<some error>"); 
    console.error(xhr.responseText); 
}}); 

hier ist der Link zu jsfiddle, wenn es hilft: jsfiddle.net

Danke für Ihre Unterstützung!

+0

kein CORS Problem? –

Antwort

0

Das sieht in der Nähe von mir, aber Sie setzen den Header in den POST-Körper. Ich denke, es sollte das Folgende sein. (Beachten Sie, dass Sie auch Anführungszeichen benötigen um ‚x-textrazor-key‘, da die Striche in sonst wird es als Subtraktion interpretiert werden.)

$.ajax({ 
    url: "https://api.textrazor.com/", 
    type: "POST", 
    dataType: 'json', 
    headers: { 
     'x-textrazor-key': "YOUR_API_KEY" 
    }, 
    data: { 
     extractors: "entities,entailments", 
     text: "Spain's stricken Bankia expects to sell..." 
    }, 
    success: function (data) { 
     alert(JSON.stringify(data)); 
    }, 
    error: function (xhr) { 
     alert("<some error>"); 
     console.error(xhr.responseText); 
    } 
}); 

Es gibt natürlich hier andere Probleme sein könnte. (Z. B. unterstützt die API möglicherweise keine Cross-Origin-Anfragen.) Sie sollten sich die Registerkarte "Netzwerk" in den Entwicklertools Ihres Browsers ansehen, um zu sehen, was tatsächlich passiert.

0

Ich glaube, man muss passieren "x-textrazor-Taste: YOUR_API_KEY" als zusätzliche Kopf

$.ajax({ 
url: "https://api.textrazor.com/", 
type: "POST", 
dataType: 'json', 
beforeSend: function(xhr){xhr.setRequestHeader('x-textrazor-key', 'YOUR_API_KEY');}, 
data: { 
    extractors: "entities,entailments", 
    text:"Spain's stricken Bankia expects to sell..." 
}, 
success:function(data) { 
    alert(JSON.stringify(data)); 
},error: function(xhr) { 
    alert("<some error>"); 
    console.error(xhr.responseText); 
}}); 
0
data: { 
    x-textrazor-key: "YOUR_API_KEY", 

Die Daten: Klammer in jQuery bedeutet, dass Sie diese Daten als POST senden möchten, während Sie müssen den API-Schlüssel als Überschrift senden.

Dieses Feld Code (nach URL oder so):

headers: {"x-textrazor-key": "YOUR_API_KEY"} 
Verwandte Themen