Bug #4174
closed
No response body from HTTP request when http.status >= 400
Applies to JS Branch:
1.0, Trunk
Fix Committed on JS Branch:
1.0, Trunk
Description
Issue raised by user on Saxon-JS forum at https://saxonica.plan.io/boards/5/topics/7423:
"When I use ixsl:schedule-action to do an http-request, I'm not getting a body in the response map for errors (though the bodies do show up just fine for 2xx responses). For example, POSTing a malformed document, I'm returned:
map{"headers":map{"connection":"close", "content-type":"application/xml;charset=UTF-8", "transfer-encoding":"Identity", "date":"Wed, 20 Mar 2019 00:16:19 GMT"}, "status":400, "message":"", "type":"load"}"'
"
In the Saxon-JS code (BrowserPlatform makeHttpRequest) it appears that we only add response.body
if !request["status-only"] && http.status < 400
. I'm not sure where that restriction came from; I probably wrongly assumed that error responses never have bodies...
- Description updated (diff)
Tests added under tests/saxon-js/http: see httpMethodTests and httpStatusTest.
httpStatusTest allows the testing of different status codes for a HTTP response (set by supplying a code via a textarea input box) - to check the returned response header and body.
httpMethodTests contains various tests of GET and HEAD requests, including use of status-only
with HEAD requests (as David added on original forum post, it doesn't really make sense that status-only
is required for a HEAD request).
- Status changed from New to Resolved
- Fix Committed on JS Branch 1.0, Trunk added
Changes committed in BrowserPlatform.js for 1.x and 2 branches.
Includes fixes for all issues raised in original forum post:
- Include response body from HTTP request when http.status >= 400
- Remove problematic unused code on line 373
var part2 = typeParts[1].trim();
-
status-only
should not be required for HEAD requests
Plus a couple of other issues encountered in testing (e.g. media-type
should be ignored for HEAD and GET requests).
- Status changed from Resolved to Closed
- Fixed in JS Release set to Saxon-JS 2.0
- Category set to IXSL extensions
Please register to edit this issue
Also available in: Atom
PDF
Tracking page