Pm.response.json() returns response undefined, but valid json response is returned with 200 status


#1

This is my ‘Test’ script
var resp = pm.response.json();
var token = resp.access_token;
pm.globals.set(“service_token”, token);

Using desktop app, version 6.6.1

I’m making a Type “No Auth” POST call for an access token. The call returns 200 status with valid JSON object,

{
“access_token”: “jwt_token_value_redacted_for_this_example”,
“scope”: “read:client_grants create:client_grants delete:client_grants update:client_grants read:users update:users delete:users create:users read:users_app_metadata update:users_app_metadata delete:users_app_metadata”,
“expires_in”: 3600,
“token_type”: “Bearer”
}

In ‘Test Results’ I get “There are no tests for this request”
In Postman console when I run resp = pm.response.json(); I get “Cannot read property ‘json’ of undefined”.

pm.responseBody and pm.response return ‘undefined’

I don’t seem to be able to get at the response body at all. Any idea why, please?

Ultimately, I wish to store the access token from the response in a global variable that I can then {{use}} in various api calls.
Thanks


#2

What do you see in the Postman console for console.log(pm.response.json().access_token)?

Is that the value that you want?

Would you be about to share a screen shot of what you seeing to add context?


#3

The snippet you posted did work. Turns out the issue not that it’s not working. The token is being captured and saved to a global variable.

The issue is I interpreted the verbiage “There are no tests for this request” in the ‘Tests Results’ tab to mean that the script didn’t run.

I also interpreted the Uncaught TypeError: Cannot read property 'json' of undefined at <anonymous>:1:24 message to mean that pm.response.json() was returning empty or null.

Thanks so much for your help.