XMLHttpRequest for Node.js that emulates the browser XMLHttpRequest object
Overall
score
75%
{
"context": "Evaluates how the solution uses the xmlhttprequest package to perform redirect-aware HTTP requests that match the spec, relying on its automatic handling of 301/302/303/307 responses and capturing the redirect chain.",
"type": "weighted_checklist",
"checklist": [
{
"name": "XMLHttpRequest usage",
"description": "Imports the xmlhttprequest package and instantiates its XMLHttpRequest class as the primary client for all requests instead of other HTTP libraries.",
"max_score": 20
},
{
"name": "Open/send flow",
"description": "Configures requests via xhr.open with the provided method and url, attaches ready state or load handlers, sets headers through setRequestHeader, and waits for xhr.status/xhr.responseText at DONE before resolving.",
"max_score": 20
},
{
"name": "Built-in redirects",
"description": "Relies on xmlhttprequest's automatic redirect following for 301/302/303/307 responses (no custom Location parsing loops) and surfaces the final status/body from the redirected response, including the final xhr.responseURL.",
"max_score": 30
},
{
"name": "Redirect history",
"description": "Tracks each hop using xmlhttprequest data—such as successive xhr.responseURL values or Location headers via getResponseHeader—building an ordered history that includes the starting and final URLs.",
"max_score": 15
},
{
"name": "303 vs 307 semantics",
"description": "Allows xmlhttprequest to switch a 303 redirect to a GET without a body while keeping method and body intact for 307 redirects, avoiding manual overrides that would break those semantics.",
"max_score": 15
}
]
}Install with Tessl CLI
npx tessl i tessl/npm-xmlhttprequestdocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10