Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

190
Views
Parse.Cloud.httpRequest devuelve 'indefinido' en lugar de una respuesta usando el método POST

Estoy haciendo una Parse.Cloud.httpRequest usando el método POST para recuperar un token de una API en una función de código en la nube de Back4App llamada 'retrieveToken'.

 Parse.Cloud.define("retrieveToken", async(request) => { Parse.Cloud.httpRequest({ method: 'POST', url: 'https://.......', headers: { 'Content-Type': 'application/json;charset=utf-8' }, body: { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "...", "password": "...", "domain": { "name": "..." } } } }, "scope": { "project": { "id": "..." } } } } }).then(function(httpResponse) { console.log('Token retrieved successfully, Status Code: ', httpResponse.status, ',\n', httpResponse.text); }, function(httpResponse) { console.error('Failed to retrieve token, retrieveToken: ', httpResponse.status, ',\n', httpResponse.text); }); });

Funciona bien si elimino "project": {"id": "..."} del 'alcance' del cuerpo JSON de httpRequest.

Sin embargo, me devuelve 'indefinido' si no elimino ese fragmento de código.

Tengo que mantener ese fragmento de código allí porque la API me devolverá un token de nivel de proyecto solo si especifico la identificación del proyecto. De lo contrario, obtendré un token de nivel global, que no se puede usar en mi caso.

La API funciona perfectamente con/sin la identificación del proyecto especificada en Postman.

Ya me he quedado aquí por un día entero y todavía no puedo resolverlo. ¿Dónde estoy haciendo mal y cómo puedo obtener la respuesta correcta de Parse.Cloud.httpRequest con la identificación del proyecto especificada?

Actualizar :

Encontré que la longitud del contenido de las respuestas es bastante diferente con/sin la identificación del proyecto especificada usando Postman.

'content-length' = 6752 Bytes sin la identificación del proyecto especificada

'content-length' = 16896 Bytes con la identificación del proyecto especificada

¿Por casualidad el 'indefinido' fue causado por el límite de tamaño de respuesta? Si este es el motivo, ¿cómo puedo obtener la respuesta correcta? ¿Puedo recibir solo el encabezado?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Parte del problema ocurre porque no devuelve la respuesta http. Prueba esto:

 Parse.Cloud.define("retrieveToken", (request) => { return Parse.Cloud.httpRequest({ method: 'POST', url: 'https://.......', headers: { 'Content-Type': 'application/json;charset=utf-8' }, body: { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "...", "password": "...", "domain": { "name": "..." } } } }, "scope": { "project": { "id": "..." } } } } }).then(function(httpResponse) { console.log('Token retrieved successfully, Status Code: ', httpResponse.status, ',\n', httpResponse.text); return httpResponse; }, function(httpResponse) { console.error('Failed to retrieve token, retrieveToken: ', httpResponse.status, ',\n', httpResponse.text); return httpResponse; }); });
about 4 years ago · Juan Pablo Isaza Report

0

Este problema se resolvió agregando una variable de entorno a mi servidor Back4App.

 NODE_OPTIONS="--max-http-header-size=16384"

Conocí el problema exacto (desbordamiento de encabezado) usando el siguiente código:

 Parse.Cloud.define("retrieveToken", async(request) => { return Parse.Cloud.httpRequest({ method: 'POST', url: 'https://.......', headers: { 'Content-Type': 'application/json;charset=utf-8' }, body: { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "...", "password": "...", "domain": { "name": "..." } } } }, "scope": { "project": { "id": "..." } } } } }); });

Solo el código anterior me devolvió el error a continuación, y todos los demás códigos me devolvieron 'indefinido':

 [Error]: Parse Error: Header overflow (Code: 141, Version: 1.19.2)

FYI: estoy llamando a esta API

 https://iam.ap-southeast-1.myhuaweicloud.com/v3/auth/tokens
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!