Мне нужна помощь в отправке JSON через POST и получении ответа - PullRequest
0 голосов
/ 26 апреля 2011

Мне нужно отправить объект json по почте, и я не могу заставить его работать.У меня так, что он успешно возвращается, но ответ пуст, и я не могу понять, почему я попробовал:

new Ajax.Request("http://twittersentiment.appspot.com/api/bulkClassifyJsonRequests", {
method: "post",
postBody:JSONstring,
onSuccess: function(transport){
var response = transport.responseText;
alert("Success@ \n" + transport.responseText + "no response");
},
onFailure: function(){alert("try again")}
});

и

var http = new XMLHttpRequest();
http.open("POST","http://twittersentiment.appspot.com/api/bulkClassifyJsonRequests",true);
http.onreadystatechange = function() {
if(http.readyState == 4)
{
    if(http.status == 200)
    {
        document.write(http.response.data);
}
else
{
    alert(http.statusText);
}
} 
};
http.send(JSONstring);

Ответы [ 2 ]

3 голосов
/ 26 апреля 2011

Проблема в том, что вы пытаетесь отправить междоменный запрос (он нарушает ту же политику происхождения ).Это проблема безопасности, которая не разрешена браузерами.Если twittersentiment.appspot.com предоставляет опцию JSONP , вы можете использовать ее вместо этого.В противном случае вам придется изучить прокси на своем веб-сайте или схожие идеи.

Редактировать
Примечание. Это относится только к использованию AJAX.Кроме того, после просмотра их api docs кажется, что они поддерживают JSONP для их "Службы классификации".Возможно, вы также можете использовать его с «Bulk Classification Service (JSON)»?

0 голосов
/ 26 апреля 2011

Политика Same Origin предотвращает вызов.Вы можете установить промежуточный прокси-сервер для выполнения этих вызовов и вернуть выходные данные в свой AJAX-скрипт.Подробнее см. Зачем вам нужен прокси .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...