Что я делаю не так?
Что ж, совершенно очевидно, предположить, что .json()
может взять любой фрагмент сломанной разметки и автоматически превратить его во что-то, соответствующее json-совместимости, просто неправильно;)
Да и да - источник проблемы в том, что - как это часто бывает с php, - что, вероятно, было правильным ответом json, загрязняется php:
<br />
<b>Warning</b>: Invalid argument supplied for foreach() in <b>/home/pedicure/public_html/pedicuremotorkopen.be/wp-content/plugins/woocommerce-parcelpro_1-2-8/admin/data/parcelpro-shipping-settings-services.php</b> on line <b>88</b><br />
[{"id":25348,"name":"Star Design Spa & Massage","slug":"star-design-spa-massage","permalink":"https:\/\/en.pedicuremotorkopen.be\/product\/star-design-spa-massage\/","date_created":"2018-01-23T11:46:28","date_modified":"2018-02-
и т.д ...
EDIT:
Как я могу убедиться, что JSON не учитывает Предупреждение ?
Как я уже упоминал, проблема с источником связана с самим PHP. Если у вас есть доступ администратора к этому сайту, вы можете изменить настройки php, чтобы он не отображал ложные предупреждающие сообщения (что я и рекомендовал бы, если бы сайт действительно работал).
Для более общего ответа, я бы сказал, что сайт, возвращающий что-то кроме хорошо сформированного json для того, что должно быть типом приложения "json", поврежден, и что это не ваша ответственность (как пишет человек) код клиента), чтобы «исправить» его - просто предупредите администратора сайта о проблеме и подождите, пока он исправит ее (см. выше).
Теперь Вы, конечно, можете попытаться быть "терпимыми" и исправить содержимое ответа самостоятельно, но вам придется делать это вручную, и в лучшем случае оно будет хрупким, поскольку у вас нет надежного способа расскажите, что является частью json, а что нет (такое загрязнение php может произойти где угодно в содержимом ответа).