我想将 API 调用(外部源,没有机会在 API 端更改某些内容)从 PHP 更改为 Javascript(学习目的)。由于跨域,我使用 fetch()。当我运行我的脚本时,我收到一个意外的输入错误结束并且无法弄清楚原因。function postData(url = '', data = {}) { var headers = new Headers(); headers.set('Authorization', 'Basic ' + window.btoa("user" + ':' + "pass")); return fetch(url, { method: 'POST', mode: 'no-cors', cache: 'no-cache', credentials: 'include', headers: { 'Content-Type': 'application/json' }, redirect: 'follow', referrer: 'no-referrer', body: JSON.stringify(data), }).then(response => response.json()).catch(error => console.error(error));}postData('https://www.api-endpoint.com/cat1/api/search?', { "searchID": "710", "isTagged": true}).then(data => console.log(JSON.stringify(data))).catch(error => console.error(error));如何识别此代码的问题?看来授权没问题。我按照 API Dev 的手册中的描述实现了搜索参数(searchID 和 isTagged)。
1 回答
精慕HU
TA贡献1845条经验 获得超8个赞
您说mode: 'no-cors',
这会禁用需要 CORS 权限的所有内容。
由于跨源读取数据需要 CORS 权限,因此没有数据。
尝试将空字符串解析为 JSON 会导致输入意外结束,因为输入在出现任何 JSON 之前就结束了。
(请注意,其他需要 CORS 权限以及您正在尝试执行的操作包括将内容类型设置为 JSON 并包括凭据)。
添加回答
举报
0/150
提交
取消