Как перемещение параметра JSON в языке сценариев JavaScript

у меня есть сомнение и дело в том, что я хочу согласиться на API, которая возвратит мне JSON, но должен соглашаться со следующим параметром:

ListMedia (String json_access, String 
json_media_filters)
"Lists the media to which the user has access in 
 the cloud platform."

ListMedia: Функция. json_access и json_media - параметры, которые я перемещаю его как json (в php с json_encode)

В PHP это у меня есть так и согласись верно:

$servicio="(Aqui va el link de la api cloud)";
$access['user'] = "(aqui va usuario)";
$access['password'] = md5("(aqui va password)");
$filters['type'] = "video";
$client = new nusoap_client($servicio, true);

$resp =  $client->call("ListMedia", 
array("json_access" => json_encode($access), 
"json_media_filters"=>json_encode($filters)));

$decoded = json_decode($resp);
print_r($decoded)

И возврати показывая это:

stdClass Object
(
[status] => success
[error] => 0
[data] => stdClass Object
    (
        [media] => Array
            (
                [0] => stdClass Object
                    (
                        [id] => 1552057437978
                        [name] => videoCorto.mp4
                        [original_name] => videoCorto.mp4
                        [file] => 3423e47523e07d4a62731f6506c1f64b.mp4
                        [src] => http://media.example.net/ec/3423e47523e07d4a62731f6506c1f64b.mp4
                        [origin] => nfs
                        [uploaded] => 2019-03-08 15:03:57
                        [modified] => 2019-03-08 15:03:57
                        [duration] => 0
                        [user] => 1548956206177
                        [size] => 1234124
                        [type] => video
                        [extension] => mp4
                        [hash] => 3423e47523e07d4a62731f6506c1f64b
                        [permissions] => 
                    )
                   )
                  )

Сейчас PHP я хочу оставить это в сторону и хочу сделать ту же просьбу, но в JS. В способе это делать всецело в JS это у меня есть так:

var servicio='(Aqui va el link de la api cloud)';
var request = new XMLHttpRequest();
request.open('GET', servicio);
request.responseType = 'json';
request.send;
request.onload = function() {
  var medias = request.response;
  populateHeader(medias);
  showMedia(medias);
}

Но очевидно он не соглашается, так как я не перемещаю ни параметров доступа, ни фильтра (тип видео) для того, чтобы он возвратил мне JSON, и это мое сомнение. То, что да мне ясно, состоит в том, что я должен перемещать параметры в JSON, как я это делаю в PHP.

Документация как соглашаться на эту просьбу с параметрами, которые присоединяются ему (не нужно все, только главные как user/password и type) introducir la descripción de la imagen aquí

1
задан 19.03.2019, 18:17
1 ответ

Я даю благополучное прибытие Stackoverflow.

Для просьб GET, ты должен перемещать цепь с ними parГЎmetros используя mГ©todo open, agreando в унифицированный указатель ресурса данные. Это благодаря тому, что у просьб GET нет тела, и следовательно не остается другая, который перемещать данные в унифицированном указателе ресурса.

cГіdigo deberГ, - чтобы оставаться asГ-:

var params = 'user=TuUsuario&password=TuPass&type=video';
var servicio='(Aqui va el link de la api cloud)';
var request = new XMLHttpRequest();
request.open('GET', servicio+"?"+params, true);
request.responseType = 'json';
request.send(null);
request.onload = function() {
  var medias = request.response;
  populateHeader(medias);
  showMedia(medias);
}

, Если бы это была одна peticiГіn типа POST (у этих просьб sГ - есть тело), тогда parГЎmetros могут перемещать его в travГ©s mГ©todo send, который допускает точно один parГЎmetro, что serГ - в тело ее peticiГіn:

var params = 'user=TuUsuario&password=TuPass&type=video';
var servicio='(Aqui va el link de la api cloud)';
var request = new XMLHttpRequest();
request.open('POST', servicio, true);
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.responseType = 'json';
request.send(params);
request.onload = function() {
  var medias = request.response;
  populateHeader(medias);
  showMedia(medias);
}

Для mГЎs детали ты можешь консультировать tambiГ©n вопрос How do I pass along переменные with XMLHTTPRequest в Stackoverflow в inglГ©s.

2
ответ дан 02.12.2019, 05:28