Как получить доступ к двум различным объектам, используя ajax? - PullRequest
0 голосов
/ 08 мая 2019

У меня другой тип ответа, и, к сожалению, я не могу изменить ответ, поэтому я могу получить доступ только при успешном использовании 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 голосов
/ 08 мая 2019

Это недопустимый формат JSON. но вы можете достичь этим путем

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

}
0 голосов
/ 08 мая 2019

jQuery не может отформатировать этот 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...