我正在使用 jquery 调用遗留系统,该系统返回以下响应:
<script type="text/javascript">
var responseObj = {
success: ('0'=='0'),
cfgInfo: {
deletedId: ''
},
data: {
id:"9470",devicePIFrom:"10.10.10.34",devicePIFromAlias:"10.10.10.34",
deviceCommunityRW:"",deviceCommunityRO:"H1ghL!ght",devicePIUseProxy:"1",
devicePITo:"10.10.10.10",devicePIToAlias:"Fake local server",
devicePISrcIP:"6.6.6.6",piStyle:"ICMPPing",SLAdelay:"100",
devicePIToPort:"0",piWanted:"1",piAutoClasses:"",piNocDisabled:"",
piCtrlPacketSize:'50',piTestInterval:'0',piProbeInterval:'',piProbeCount:'',
piMOSCodec:'0',pimosSLA:'3.5',piSLAPacketLoss:'0.05',piSLAJitter:'20'
},
errors: [
]
}
</script>
我的 jquery 看起来像这样:
$.ajax({
type: "GET",
url: requestString,
dataType: 'script',
success: function(data){
.....do stuff......
}
});
鉴于我无法更改旧系统的响应格式,如何获取responseObj?
最佳答案
感谢您的帮助 - 最后 ext-js 给了我答案:
使用 var 响应 = eval("("+ data + ')'); 处理响应字符串会产生 javascript 对象 - 然后我可以直接访问属性,如下所示:
$.ajax({
type: "GET",
url: requestString,
dataType: 'script',
success: function(data){
var response = eval("(" + data + ')');
if(response.success) {
...do stuff.....
}
}
});
晦涩难懂,但它有效!
关于jquery - jquery中的javascript ajax响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5550409/