PHP:
Код: Выделить всё
$returnInfo = array() ;
$returnInfo[] = array("success"=>true,"key1"=>"value1","key2"=>"value2",...) ;
//Then at the end of the API:
sendResponse(200,json_encode($returnInfo)) ;
function sendResponse($status, $body) {
$status_header = 'HTTP/1.1 ' .$status. ' ' .getStatusCodeMessage($status);
header($status_header);
header('Content-type: application/json');
echo $body;
}
Приложение лишь изредка сообщает об ошибке, если данные представляют собой МАССИВ.
Код: Выделить всё
function objArray(val,type) {
//type = 1 = object
// 2 = array
if (type == 1) {
return (!!val) && (val.constructor === Object) ;
} else if (type == 2) {
return (!!val) && (val.constructor === Array) ;
}
}
var baseUrl = "https://api.example.com/apiFile.php" ;
var req = {
method: 'POST',
url: baseUrl,
timeout:httpTimeout,
headers: headers,
data: JSON.stringify(dataObj)
}
return $http(req)
.then(function(response){
if (response.status == 200 && objArray(response.data,2)) {
...
... do stuff with response
...
} else {
var err = resError(req,response) ;
err.callBack = "Success" ;
throw err ;
}
Но когда происходит ошибка throw ;, он вызывает другой сценарий API, чтобы отправить подробную информацию об ошибке на мой сервер. Зафиксирована ошибка (с некоторыми другими пользовательскими сообщениями):
Код: Выделить всё
status = 200
statusText = SUCCESS RESPONSE ERROR: OK
callBack = Success
Это началось только после обновления с PHP 7.3 — PHP 8.2. Так что же изменилось... или стало более строгим и/или менее снисходительным... в PHP 8.2, из-за чего мое приложение иногда видит ответ.data не как массив?
Подробнее здесь: https://stackoverflow.com/questions/791 ... d-as-array