Fetch API & HTTP Response opaque All In One
Fetch API & HTTP Response opaque All In One
Promise {
: SyntaxError: Unexpected end of input at
const promise = await fetch(url, {
// method: 'GET', // *GET, POST, PUT, DELETE, etc.
// mode: 'cors', // no-cors, *cors, same-origin
// cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
// credentials: 'same-origin',
// credentials: 'include',
method: 'GET',
// mode: 'no-cors',
// ? A no-cors request makes the response type opaque. Opaque means your frontend JavaScript code can’t see the response body or headers.
// responseType: 'arraybuffer',
// responseType: 'blob',
headers: {
// 'Accept': type,
'Content-Type': type,
// 'Content-Type': 'application/octet-stream',
// 'Accept': 'video/mp4',
// 'Accept': 'application/json',
// 'Content-Type': 'application/json;charset=utf-8'
// 'Content-Type': 'application/json',
// 'Content-Type': 'application/x-www-form-urlencoded',
// ...headers,
},
}).then(res => {
if(type.includes('json')) {
const json = res.json();
console.log('json =', json);
return json;
} else {
const buffer = res.arrayBuffer();
console.log('buffer =', buffer);
return buffer;
}
}).then(data => {
console.log('data =', data);
const blob = new Blob(
[data],
{'type' : type},
);
const urlBlob = URL.createObjectURL(blob);
dom.src = urlBlob;
link.href = urlBlob;
link.innerText = urlBlob;
}).catch(err => {}).finally(() => {});
https://stackoverflow.com/questions/43317967/handle-response-syntaxerror-unexpected-end-of-input-when-using-mode-no-cors
HTTP Response & type: 'opaque',
// res = Response {type: 'opaque', url: '', redirected: false, status: 0, ok: false, …}body: (...)bodyUsed: falseheaders: Headers {}ok: falseredirected: falsestatus: 0statusText: ""type: "opaque"url: ""[[Prototype]]: Response
fetch.js:48 buffer = Promise {: ArrayBuffer(0)}
ReadableStream
type: "basic"
url: "https://cdn.xgqfrms.xyz/HTML5/Blob/2022-04-07-sh.mp4
// fetch.response = Response
fetch.js:38 fetch.response = Response {type: 'basic', url: 'https://cdn.xgqfrms.xyz/HTML5/Blob/2022-04-07-sh.mp4', redirected: false, status: 200, ok: true, …}body: ReadableStreamlocked: true[[Prototype]]: ReadableStreamcancel: ? cancel()getReader: ? getReader()length: 0name: "getReader"arguments: (...)caller: (...)[[Prototype]]: ? ()[[Scopes]]: Scopes[0]locked: truepipeThrough: ? pipeThrough()pipeTo: ? pipeTo()tee: ? tee()constructor: ? ReadableStream()Symbol(Symbol.toStringTag): "ReadableStream"get locked: ? locked()[[Prototype]]: ObjectbodyUsed: trueheaders: Headers {}ok: trueredirected: falsestatus: 200statusText: ""type: "basic"url: "https://cdn.xgqfrms.xyz/HTML5/Blob/2022-04-07-sh.mp4"[[Prototype]]: ResponsearrayBuffer: ? arrayBuffer()blob: ? blob()body: ReadableStreambodyUsed: (...)clone: ? clone()formData: ? formData()headers: (...)json: ? json()ok: (...)redirected: (...)status: (...)statusText: ""text: ? text()type: "basic"url: "https://cdn.xgqfrms.xyz/HTML5/Blob/2022-04-07-sh.mp4"constructor: ? Response()Symbol(Symbol.toStringTag): "Response"get body: ? body()get bodyUsed: ? bodyUsed()get headers: ? headers()get ok: ? ok()get redirected: ? redirected()get status: ? status()get statusText: ? statusText()get type: ? type()get url: ? url()[[Prototype]]: Object
refs
?xgqfrms 2012-2020
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有??xgqfrms, 禁止转载 ???,侵权必究??!