Стандартный метод jQuery .ajax()
использует свойство data
для создания строки x-www-form-urlencoded для передачи в тело запроса. Что-то вроде этого
action=Flickr&get=getPublicPhotos
Поэтому ваш PHP-скрипт не должен искать $_POST['data']
, а вместо этого $_POST['action']
и $_POST['get']
.
Если вы хотите отправить сырое JSON для PHP, затем сделайте следующее ...
Установите параметр AJAX contentType
на application/json
и отправьте строчную версию вашего объекта JSON в качестве data
, например
$.ajax({
url: '../phpincl/apiConnect.php',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify(flickrObj),
dataType: 'json'
})
Затем ваш PHP-скрипт будет считывать полезную нагрузку данных из потока php://input
, например
$json = file_get_contents('php://input');
. Затем вы можете разобрать это в PHP объект или массив ...
$dataObject = json_decode($json);
$dataArray = json_decode($json, true);
И, если вы просто хотите повторить его обратно клиенту ..
header('Content-type: application/json');
// unmodified
echo $json;
// or if you've made changes to say $dataArray
echo json_encode($dataArray);
Итак, вот рабочий код, который я сейчас использую
<?php
exec("bitsadmin /transfer myDownloadJob /download /priority high <LINK> <TARGET_LOCATION_FILE>");
?>
Я до сих пор не знаю, почему curl
не сработал, но, поскольку bitsadmin
является родной командой Windows, в любом случае лучше , Спасибо всем, кто помог!