Возвращаемый JSON - это структуры как вызов функции. Не могу понять, как разобрать с jQuery - PullRequest
1 голос
/ 30 августа 2010

Я говорю с сервером, и ответ JSON выглядит так:

someResponse({ "Response":{"status":"3","message":"Not valid bla bla"} });

Правильный JSON должен выглядеть так, верно?:

{
    "response":
    {
        "status":"3",
        "message":"Not valid bla bla"
    }
}

Есть ли способ, которым я мог бы каким-то образом получить эти данные с помощью jQuery, если он заключен в эту функцию "someResponse"?

Мой код jQuery выглядит так:

$.ajax({
   url: "https://someurl/test/request.asp?user=x&pass=x",
   dataType: "JSONP",
   success: function(msg){
    $("#json_here").html(msg.response.status);
   },
   error:function(x,e){alert(x+" :: "+e)}
});

Конечно, когда я это делаю, ничего не происходит. Но если я сделаю $ ("# json_here"). Html (msg); тогда я получаю полный ответ, как указано выше.

Я делаю что-то не так или это неверный способ отправки данных JSON? Я не получаю ошибки разбора.

Заранее спасибо.

1 Ответ

6 голосов
/ 30 августа 2010

Сервер возвращает JSONP, а не JSON. Это сделано для облегчения междоменных запросов (другими словами, ajax mashups).

Все, что вам нужно сделать, это реализовать функцию someResponse для анализа ответа и вставки загруженного ответа на вашу страницу. Ваш someResponse будет автоматически вызван браузером. Вы также можете взглянуть на один из множества учебников на JSONP.

Часто API-интерфейсы, возвращающие JSONP, позволяют клиенту выбирать имя для функции, которая должна вызываться с загруженным JSON. Таким образом, вы можете переименовать ваш обработчик так, как хотите, вам просто нужно сообщить об этом серверу.

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