jquery中的javascript ajax响应
我使用jquery调用一个遗留系统,该系统返回以下响应:jquery中的javascript ajax响应,jquery,ajax,Jquery,Ajax,我使用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",
<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>
鉴于我无法更改旧系统的响应格式,如何获得响应bj?感谢您的帮助-最终ext js给了我答案: 使用 var响应=评估(“(“+数据+”)”); 要处理响应字符串,将生成javascript对象,然后我可以直接访问属性,如下所示:
$.ajax({
type: "GET",
url: requestString,
dataType: 'script',
success: function(data){
var response = eval("(" + data + ')');
if(response.success) {
...do stuff.....
}
}
});
虽然晦涩难懂,但它确实有效 谢谢你的帮助-最后ext js给了我答案: 使用 var响应=评估(“(“+数据+”)”); 要处理响应字符串,将生成javascript对象,然后我可以直接访问属性,如下所示:
$.ajax({
type: "GET",
url: requestString,
dataType: 'script',
success: function(data){
var response = eval("(" + data + ')');
if(response.success) {
...do stuff.....
}
}
});
虽然晦涩难懂,但它确实有效 看起来您必须编写自己的解析器,因为它看起来几乎像JSON,但是
成功:('0'='0')
不是有效的JSON ans,cfgInfo:
,因为缺少“”(应该是这样的:“cfgInfo”
。有关json的更多信息,请看这里有一个我找到的解析器:您也可以编写自己的解析器,或者只搜索开源解析器。您也可以使用ANTLR,但因此您必须知道如何编写EBNF语法。如果响应周围没有
,则此代码应该可以工作。jQuery将执行并重新编译sponseObj
将成为全局的。看起来您必须编写自己的解析器,因为它看起来几乎像JSON,但是成功:('0'='0')
不是有效的JSON ans,cfgInfo:
也是如此,因为缺少了“”(应该是这样:“cfgInfo”)
。有关json的更多信息,请看这里有一个我找到的解析器:您也可以编写自己的解析器,或者只搜索开源解析器。您也可以使用ANTLR,但因此您必须知道如何编写EBNF语法。如果响应周围没有
,则此代码应该可以工作。jQuery将执行并重新编译sponseObj
将成为全球性的。