2016-07-28 3 views
3

Я пытаюсь преобразовать curl-код из API под названием TextRazor в jQuery jQuery из-за ограничений платформы. Я пробовал много решений от подобных вопросов со стороны сообщества, но, похоже, не может вернуть данные (через диалоговое окно предупреждения). Если это имеет значение из документации, вызывающей 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

не проблема CORS? –

ответ

0

Это выглядит близко ко мне, но вы помещаете заголовок в тело POST. Я думаю, что это должно быть ниже. (Обратите внимание, что вы также должны кавычки «х-textrazor-ключ», так как черточки в нем иначе будет интерпретироваться как вычитанием.)

$.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 не поддерживает запросы с кросс-началом.) Вам нужно взглянуть на вкладку сети в инструментах разработчика вашего браузера, чтобы узнать, что на самом деле происходит.

0

Я думаю, что вы должны передать «х-textrazor ключ: 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("<some error>"); 
    console.error(xhr.responseText); 
}}); 
0
data: { 
    x-textrazor-key: "YOUR_API_KEY", 

Данные: скобка в JQuery означает, что вы хотите отправить эти данные, как POST, в то время как вам нужно отправить ключ API в качестве заголовка.

Добавьте это поле в код (после того, как URL или так):

headers: {"x-textrazor-key": "YOUR_API_KEY"} 
Смежные вопросы