为了账号安全,请及时绑定邮箱和手机立即绑定

通过 fetch() 调用 API - 意外的输入结束

通过 fetch() 调用 API - 意外的输入结束

富国沪深 2021-09-30 13:57:33
我想将 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 并包括凭据)。


查看完整回答
反对 回复 2021-09-30
  • 1 回答
  • 0 关注
  • 180 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信