由于平台的限制,我正在尝试将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("<some error>");
console.error(xhr.responseText);
}});
如果它有帮助,这里是jsfiddle的链接:jsfiddle.net
感谢您的支持!
答案 0 :(得分:0)
这看起来很接近我,但你将标题放入POST正文。我认为应该如下。 (请注意,您还需要围绕&x-textrazor-key&#39;,因为其中的破折号将被解释为减法。)
$.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);
}
});
这里当然可以有其他问题。 (例如,API可能不支持跨源请求。)您需要查看浏览器开发人员工具中的网络选项卡,以了解实际发生的情况。
答案 1 :(得分:0)
我认为您必须将“x-textrazor-key:YOUR_API_KEY”作为附加标题传递
{{1}}
答案 2 :(得分:0)
data: {
x-textrazor-key: "YOUR_API_KEY",
数据:jQuery中的括号表示您希望将该数据作为POST发送,而您需要将API密钥作为标题发送。
将此字段添加到您的代码中(在URL之后):
headers: {"x-textrazor-key": "YOUR_API_KEY"}