我在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"}});
答案 0 :(得分:2)
我认为result
设置为ajaxUse
函数的返回值,而不是从URL返回的JSON。试试 -
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]);