хотел бы получить результат JSONP в JSON - PullRequest
1 голос
/ 29 ноября 2011

У меня возникла проблема с результатом JSONP, может кто-нибудь подсказать мне, как переформатировать результат JSONP .responseText в правильный формат JSON.

var result = ''
$.fn.ajaxUse = function(fullurl){
    result = $.ajax({
      dataType: 'jsonp',
      data: 'id=test',
      jsonp: 'callback_jsonp',
      url: fullurl,
      success: function(data){},
      error: function(xhr){
        alert(xhr.responseText);
      },
      async: false
    }).responseText;
}

$.fn.ajaxUse(ajaxurl+'menu.php');
alert(result);

Когда я использую приведенный выше код и пытаюсь вернуть результат в формате JSON, я получаю следующий результат. Может кто-нибудь ответить мне, как я могу разобрать результат в формате JSON, я использую parseJSON уже и не работает. Я хотел бы удалить jQuery17018127539248006552_1322568664691 из следующего результата и хотел бы получить только правильный JSON.

jQuery17018127539248006552_1322568664691({"lang":{"1":"Organization Information","2":"Project List","3":"Project Details","4":"Advanced Search","5":"Layers List"}});

1 Ответ

2 голосов
/ 29 ноября 2011

Я думаю, result получает значение, возвращаемое вашей функцией ajaxUse, а не JSON, который возвращается из вашего URL. Попробуй -

var result = '';
$.fn.ajaxUse = function(fullurl){
    $.ajax({
      dataType: 'jsonp',
      data: 'id=test',
      jsonp: 'callback_jsonp',
      url: fullurl,
      success: function(data){
        result = data;
      },
      error: function(xhr){
        alert(xhr.responseText);
      },
      async: false
    }).responseText;
}

$.fn.ajaxUse(ajaxurl+'menu.php');
alert(result);
alert(result.lang[1]);
...