это произошло после 27, использование targetSdkVersion 26 заменить, дождаться, когда Google зафиксировал его
'data' должен быть строгим JavaScript-объектом:
data: JSON.stringify({ "userName": userName, "password" : password })
Чтобы отправить ваш formData
, перейдите к stringify
:
data: JSON.stringify(formData)
Некоторые серверы также требуется тип содержимого application/json
:
contentType: 'application/json'
Также есть более подробный ответ на аналогичный вопрос: Jquery Ajax Проводка json в webservice
Если вы отправляете этот почтовый запрос в кросс-домен, вы должны проверить эту ссылку.
https://stackoverflow.com/a/1320708/969984
Ваш сервер не принимает запрос на перекрестный сайт. Поэтому необходимо изменить конфигурацию сервера, чтобы разрешить запросы на межсайтовый сайт.
Вы отправляете JSON, как это
$.ajax(url, {
data : JSON.stringify(myJSObject),
contentType : 'application/json',
type : 'POST',
...
, если вы передаете объект как settings.data jQuery будет преобразовывать его в параметры запроса и по умолчанию отправлять с помощью приложения типа данных / x-www-form- urlencoded; charset = UTF-8, возможно, не то, что вы хотите