Tag: fetch api

Fetch API和XMLHttpRequest有什么区别?

我知道提取是使用承诺,他们都允许你做一个服务器的AJAX请求。 我已经读过,fetch有一些额外的function,这些function在XMLHttpRequest中是不可用的(并且在获取polyfill中,因为它基于XHR)。 抓取API具有哪些额外function?

在React Native中使用授权标头

我试图在React Native中使用fetch来从Product Hunt API中获取信息。 我已经获得适当的访问令牌,并已将其保存到状态,但似乎无法传递给GET请求的授权标头。 以下是我到目前为止: var Products = React.createClass({ getInitialState: function() { return { clientToken: false, loaded: false } }, componentWillMount: function () { fetch(api.token.link, api.token.object) .then((response) => response.json()) .then((responseData) => { console.log(responseData); this.setState({ clientToken: responseData.access_token, }); }) .then(() => { this.getPosts(); }) .done(); }, getPosts: function() { var obj = { link: 'https://api.producthunt.com/v1/posts', […]

如何取消HTTP提取()请求?

有一个新的API用于从JavaScript获取请求:fetch()。 有没有内置机制来取消这些在飞行中的请求?

获取:拒绝承诺与JSON错误对象

我有一个HTTP API,在成功和失败时都返回JSON数据。 一个例子失败将如下所示: ~ ◆ http get http://localhost:5000/api/isbn/2266202022 HTTP/1.1 400 BAD REQUEST Content-Length: 171 Content-Type: application/json Server: TornadoServer/4.0 { "message": "There was an issue with at least some of the supplied values.", "payload": { "isbn": "Could not find match for ISBN." }, "type": "validation" } 我想在我的JavaScript代码中实现的是这样的: fetch(url) .then((resp) => { if (resp.status >= 200 && […]

取得进度指标?

我正在努力寻找使用fetch实现上传进度指示器的文档或示例。 这是迄今为止我发现的唯一参考 ,其中指出: 进度事件是一个高级function,现在不会到达提取。 您可以通过查看Content-Length标题并使用传递stream来监视接收到的字节来创build自己的。 这意味着你可以明确地处理没有Content-Length回应。 当然,即使Content-Length在那里,也可能是一个谎言。 随着stream你可以处理这些谎言,但是你想要的。 我将如何写“传递stream来监控字节”发送? 如果它有什么不同,我试图做到这一点,从浏览器的图像上传到Cloudinary 。 注意 :我对Cloudinary JS库 不感兴趣,因为它依赖于jQuery,我的应用程序不支持。 我只对使用原生javascript和Github的fetch polyfill进行处理所需的stream处理感兴趣。 https://fetch.spec.whatwg.org/#fetch-api

取:POST JSON数据

我正在尝试使用fetch发布 JSON对象。 从我所能理解的,我需要附加一个string化的对象到请求的主体,例如: fetch("/echo/json/", { headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' }, method: "POST", body: JSON.stringify({a: 1, b: 2}) }) .then(function(res){ console.log(res) }) .catch(function(res){ console.log(res) }) 当使用jsfiddle的json回声时,我希望看到我发送的对象( {a: 1, b: 2} ),但是这不会发生 – chrome devtools甚至不会显示JSON作为请求的一部分,这意味着它没有被发送。

在尝试从REST API获取数据时,请求的资源上没有“Access-Control-Allow-Origin”标头

我试图从HP Alm的REST API中获取一些数据。 它用一个小curl脚本很好 – 我得到我的数据。 现在用JavaScript来做,取和ES6(或多或less)似乎是一个更大的问题。 我不断收到此错误消息: 抓取API无法加载。 对预检请求的响应不会通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 原因' http://127.0.0.1:3000 '因此不被允许访问。 响应的HTTP状态码为501.如果一个不透明的响应满足您的需要,请将请求的模式设置为“no-cors”,以取消禁用CORS的资源。 我知道这是因为我试图从我的本地主机获取数据,解决scheme应该使用CORS。 现在我以为我确实是这样做的,但是不知怎么的,要么忽略我在标题中写的东西,要么问题是其他的东西? 那么,是否有执行问题? 我做错了吗? 我不能检查服务器日志不幸的。 我真的有点卡在这里。 function performSignIn() { let headers = new Headers(); headers.append('Content-Type', 'application/json'); headers.append('Accept', 'application/json'); headers.append('Access-Control-Allow-Origin', 'http://localhost:3000'); headers.append('Access-Control-Allow-Credentials', 'true'); headers.append('GET', 'POST', 'OPTIONS'); headers.append('Authorization', 'Basic ' + base64.encode(username + ":" + password)); fetch(sign_in, { //mode: 'no-cors', credentials: 'include', method: […]