Bring some sanity to request parsing and error handling (#2335)
* Update docs/request.md * Bring some sanity to request parsing and error handling - The browser can do JSON parsing itself. Let's defer to that where possible. (A few IE hacks are required here, though.) - Don't propagate any error that occurs before `deserialize`/`extract`. - Allow sending raw array buffers/blobs/etc. to `deserialize`. - Align behavior more closely with the XHR spec. - Send the more useful parsed response to `deserialize`, not the less useful string response.
This commit is contained in:
parent
09afc54c7b
commit
794e8e963f
5 changed files with 55 additions and 18 deletions
|
|
@ -39,6 +39,7 @@
|
|||
- route, request: Interpolated arguments are URL-escaped (and for declared routes, URL-unescaped) automatically. If you want to use a raw route parameter, use a variadic parameter like in `/asset/:path.../view`. This was previously only available in `m.route` route definitions, but it's now usable in both that and where paths are accepted. ([#2361](https://github.com/MithrilJS/mithril.js/pull/2361))
|
||||
- route, request: Interpolated arguments are *not* appended to the query string. This means `m.request({url: "/api/user/:id/get", params: {id: user.id}})` would result in a request like `GET /api/user/1/get`, not one like `GET /api/user/1/get?id=1`. If you really need it in both places, pass the same value via two separate parameters with the non-query-string parameter renamed, like in `m.request({url: "/api/user/:urlID/get", params: {id: user.id, urlID: user.id}})`. ([#2361](https://github.com/MithrilJS/mithril.js/pull/2361))
|
||||
- route, request: `m.route.set`, `m.request`, and `m.jsonp` all use the same path template syntax now, and vary only in how they receive their parameters. Furthermore, declared routes in `m.route` shares the same syntax and semantics, but acts in reverse as if via pattern matching. ([#2361](https://github.com/MithrilJS/mithril.js/pull/2361))
|
||||
- request: `options.responseType` now defaults to `"json"` if `extract` is absent, and `deserialize` receives the parsed response, not the raw string. If you want the old behavior, [use `responseType: "text"`](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseType). ([#2335](https://github.com/MithrilJS/mithril.js/pull/2335))
|
||||
|
||||
#### News
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue