jquery не может прочитать ответ json (используя $ .post) - PullRequest
0 голосов
/ 19 июля 2011

Я отправляю запрос с типом данных json. Я могу видеть ответ json в fiddrel, но jquery не может его проанализировать.

Вот мой код:

$("#jsonTestCasePost").click(function(){
        var requestType = $("#requestType").val();
        $('#result').val(requestType);
        debugger;
        $.post("http://localhost/api/number/substract", {numberA:"32",numberB:"10"},
         function(data){
            debugger;
            $('#result').val(data);
         }, requestType);
});

Это мой необработанный текст ответа в fiddler.

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 15
Server: Jetty(6.1.11)

{"result":"22"}

В функции jquery done я вижу следующие значения:

status: 0
statusTex: "", 
responses: {}
headers: ""

Есть идеи, что я здесь не так делаю? Спасибо

Ответы [ 4 ]

2 голосов
/ 19 июля 2011

Вам необходимо использовать свойство результата данных:

$('#result').val(data.result);
1 голос
/ 17 ноября 2011

По запросу, вот мой комментарий в форме ответа:

Вы, вероятно, стали жертвой ограничений из-за политики того же происхождения Убедитесь, что ваш запрос отправляется на тот же сервер, на котором находится ваша страница.Например, если вы запрашиваете http://localhost/api/number/substract, ваша текущая запрашивающая страница должна быть на http://localhost.

1 голос
/ 19 июля 2011

в случае, если вы делаете cross browser запрос, используйте jquery's ajax

$.ajax({
url:'http://localhost/api/number/substract',
type:'POST',
data:{numberA:"32",numberB:"10"},
dataType:'json',
async:false,
cache:false,
crossDomain:true,
success:function(data){
$('#result').val(data.result);    
},
error:function(jxhr){
console.log(jxhr.responseText);
}   

});
0 голосов
/ 20 июля 2011

Выполнение запроса с того же сервера решило мою проблему.Спасибо gilly3 за ваш комментарий.

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