tessl install tessl/npm-xmlhttprequest@1.8.0XMLHttpRequest for Node.js that emulates the browser XMLHttpRequest object
Agent Success
Agent success rate when using this tile
75%
Improvement
Agent success rate improvement when using this tile compared to baseline
1.15x
Baseline
Agent success rate without this tile
65%
{
"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
}
]
}