从curl到jQuery的$ .ajax()函数

我试图将curl代码从一个名为TextRazor的API转换为jquery的AJAX,因为平台有限。 我已尝试过社区类似问题的许多解决方案,但似乎无法获得任何数据(通过警报对话框)。 如果调用API的文档很重要,则如下所示:

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/ 

我目前的AJAX代码如下所示:

 $.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(""); console.error(xhr.responseText); }}); 

如果它有帮助,这里是jsfiddle的链接: jsfiddle.net

感谢您的支持!

我认为你必须传递“x-textrazor-key:YOUR_API_KEY”作为附加标题

 $.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(""); console.error(xhr.responseText); }}); 
 data: { x-textrazor-key: "YOUR_API_KEY", 

数据:jQuery中的括号表示您希望将该数据作为POST发送,而您需要将API密钥作为标题发送。

将此字段添加到您的代码中(在URL之后):

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

这看起来很接近我,但你把标题放入POST主体。 我认为应该是以下内容。 (请注意,您还需要围绕’x-textrazor-key’的引号,因为否则其中的破折号将被解释为减法。)

 $.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(""); console.error(xhr.responseText); } }); 

当然可以有其他问题。 (例如,API可能不支持跨源请求。)您需要查看浏览器开发人员工具中的网络选项卡,以了解实际发生的情况。