如何使用ajax访问两个不同的对象?

时间:2019-05-08 10:15:03

标签: javascript ajax

我有不同类型的响应,但是不幸的是,我无法控制更改响应,因此我只能以ajax成功方法访问。

{"message":"Request completed","status":1}{"coin_message":"Thank You! Your....."}

以下是我迄今为止尝试过的脚本,但仍然无法访问它

success: function(response){    
   if(response.coin_message){
         $('#response-from-controller-coin-payment').append('<div class="coin_messages alert alert-success" role="alert">'+response.coin_message+'</div>');
   }
   if(response.amount){
       $('#response-from-controller-coin-payment').append('<div class="coin_messages alert alert-danger" role="alert">'+response.amount+'</div>');
   }

   if(response.currency){
       $('#response-from-controller-coin-payment').append('<div class="coin_messages alert alert-danger" role="alert">'+response.currency+'</div>');
   }
}

有人可以请我指导我如何获得回复。非常感谢。

2 个答案:

答案 0 :(得分:0)

jQuery无法格式化thuis JSON,因为它不是有效的JSON。相反,您应该自己解析它。

如果没有嵌套的对象,那很简单:只需在第一个}之后拆分字符串。例如,

success: function(response) {
  var firstObj = $.parseJSON(response.substring(0, response.indexOf('}' + 1)));
  var secondObj = $.parseJSON(response.substring(response.indexOf('}' + 1)));

  // ...
}

然后将dataType: 'text'附加到ajax选项。

答案 1 :(得分:0)

此无效的JSON格式。但您可以通过这种方式实现

success: function(response) {
  var res= `[${response}]`.replace("}{","},{");
  var [firstObj,secondObj]= eval(res)

}