我用Fetch得到了GET和POST方法之外的东西.但我找不到任何好的DELETE和PUT示例.
所以,我问你.你能举一个带有fetch的DELETE和PUT方法的好例子吗?并解释一下.
我正在尝试使用axios来获取带有需要Authorization标头的API的GET请求.
我目前的代码:
const AuthStr = 'Bearer ' + USER_TOKEN;
Run Code Online (Sandbox Code Playgroud)
其中,USER_TOKEN被访问令牌需要.这个字符串连接可能是问题,好像我发布这个AuthStr = 'Bearer 41839y750138-391',以下GET请求工作并返回我之后的数据.
axios.get(URL, { 'headers': { 'Authorization': AuthStr } })
.then((response => {
console.log(response.data);
})
.catch((error) => {
console.log(error);
});
Run Code Online (Sandbox Code Playgroud)
我也尝试将其设置为全局标题但没有成功.
像
/* Exercise PDOStatement::fetch styles */
print("PDO::FETCH_ASSOC: ");
print("Return next row as an array indexed by column name\n");
$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
print("\n");
print("PDO::FETCH_BOTH: ");
print("Return next row as an array indexed by both column name and number\n");
$result = $sth->fetch(PDO::FETCH_BOTH);
print_r($result);
print("\n");
print("PDO::FETCH_LAZY: ");
print("Return next row as an anonymous object with column names as properties\n");
$result = $sth->fetch(PDO::FETCH_LAZY);
print_r($result);
print("\n");
print("PDO::FETCH_OBJ: ");
print("Return next row as an anonymous object with column names as properties\n");
$result = $sth->fetch(PDO::FETCH_OBJ);
print …Run Code Online (Sandbox Code Playgroud) 我正在使用react native构建一个应用程序,它使得获取调用依赖于来自服务器的最新信息.我注意到它似乎缓存了响应,如果我再次运行该fetch调用,它将返回缓存的响应,而不是来自我的服务器的新信息.
我的功能如下:
goToAll() {
AsyncStorage.getItem('FBId')
.then((value) => {
api.loadCurrentUser(value)
.then((res) => {
api.loadContent(res['RegisteredUser']['id'])
.then((res2) => {
console.log(res2);
this.props.navigator.push({
component: ContentList,
title: 'All',
passProps: {
content: res2,
user: res['RegisteredUser']['id']
}
})
});
});
})
.catch((error) => {console.log(error);})
.done();
}
Run Code Online (Sandbox Code Playgroud)
而api.js im调用的函数如下:
loadContent(userid){
let url = `http://####.com/api/loadContent?User_id=${userid}`;
return fetch(url).then((response) => response.json());
}
Run Code Online (Sandbox Code Playgroud) 我正在创建一个带有访问管理(AM)服务器的社交登录页面.当用户单击登录按钮时,我会对AM服务器进行提取http调用.AM服务器生成带有auth cookie的HTTP 301重定向响应到社交登录页面.我需要以某种方式关注此重定向响应并在Web浏览器中显示新内容.
UI:ReactJS
请求:
POST /api/auth/socialauth/initiate HTTP/1.1
Host example.com
User-Agent Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0)
Accept */*
Accept-Language en-US,en;q=0.5
Accept-Encoding gzip, deflate
origin http://web.example.com:8080
Referer http://web.example.com:8080/myapp/login
Cookie authId=...; NTID=...
Run Code Online (Sandbox Code Playgroud)
响应
HTTP/1.1 307 Temporary Redirect
https://www.facebook.com/dialog/oauth?client_id=...&scope=public_profile%2Cemail&redirect_uri=http%3A%2F%2Fam.example.com%3A8083%2Fopenam%2Foauth2c%2FOAuthProxy.jsp&response_type=code&state=qtrwtidnwdpbft4ctj2e9mv3mjkifqo
Run Code Online (Sandbox Code Playgroud)
反应代码:
initiateSocialLogin() {
var url = "/api/auth/socialauth/initiate";
fetch(url, { method: 'POST' })
.then(response => {
// HTTP 301 response
// HOW CAN I FOLLOW THE HTTP REDIRECT RESPONSE?
})
.catch(function(err) {
console.info(err + " url: " + url);
});
}
Run Code Online (Sandbox Code Playgroud)
我如何遵循重定向响应并在Web浏览器中显示新内容?
我正在尝试正确解释从 fetch 调用到 URL 的响应,我认为它是一个 json 字符串。我已经根据这里的类似帖子尝试了许多变体,但没有什么能让我使用有用的数据。这是一种尝试:
fetch('http://serverURL/api/ready/', {method: "POST", mode: "no-cors"})
.then(function(response) {
response.json().then(function(data) {
console.log('data:' + data);
});
})
.catch(function(err) {
console.log('Fetch Error :-S', err);
});
Run Code Online (Sandbox Code Playgroud)
这会在控制台中返回一个语法错误:
SyntaxError: JSON.parse: JSON 数据第 1 行第 1 列的数据意外结束
所以也许它不是 JSON...如果我在 console.log 行上放置一个断点,并将鼠标悬停在响应(上面的行)上,我会看到带有各种字段的响应对象 (?):
不知道如何解释...status:0 表明它没有得到有效的响应。但是,如果我检查开发人员工具中的 Network 选项卡,然后单击 fetch 行,则状态为 200,并且响应窗口/JSON 部分会显示消息信息,如果您只是将 URL 放入浏览器 URL 中,您也会看到这些信息直接酒吧。与显示 JSON 字符串的“响应负载”部分一样:
{"msg": "API 已准备就绪。", "success": true}
所以......它看起来像json,不是吗?但是 fetch 无法将其作为 json 摄取?
这是另一种变体,但使用 response.text() 而不是 response.json()
fetch('http://serverURL/api/ready/', {method: "POST", mode: "no-cors"})
.then((response) => {
console.log(response);
response.text().then((data) …Run Code Online (Sandbox Code Playgroud) 对于react.js来说是新手,在完成教程和阅读文档之后,我仍然在使用js fetch从JSON文件加载我的数据以及从对象数组中设置属性.我也不确定我是否正在我的事件处理程序中正确访问DOM属性.我必须错过一些相当简单的事情.
作为参考,这里是我的代码与项目的其余部分和这里就是它应该的样子.
ETA:我从文档中不知道babel浏览器已被弃用,因此决定只使用带有ES5语法的直接Javascript而不是JSX.代码在下面更新,但它仍然没有呈现标记.
var CanvasAnimation = React.createClass({
getInitialState: function() {
return {data: []};
},
loadData: function() {
/*
fetch("data.json")
.then(function(response) {
return response.json
.then(function(json){
this.setState({data: json});
}.bind(this))
}.bind(this));
*/
const data = [
{ id: "stalkerOne", width: 225, height: 434, spriteSheetURL: 'spriteSheets/stalkerone.jpg', rows: 5, columns: 5, totalFrames: 24 },
{ id: "stalkerTwo", width: 175, height: 432, spriteSheetURL: 'spriteSheets/stalkertwo.jpg', rows: 6, columns: 5, totalFrames: 26 },
{ id: "stalkerThree", width: 251, height: 432, spriteSheetURL: 'spriteSheets/stalkerthree.jpg', rows: 6, …Run Code Online (Sandbox Code Playgroud)出于某种原因,我的浏览器(我尝试了几个)不设置cookie,即使服务器返回有效的set-cookie响应,当使用fetch api 通过Ajax进行GET调用来发出请求时
如果我通过将URL放在浏览器中进行相同的GET调用,则浏览器会尊重(相同的)set-cookie响应头并保存cookie.
我通过LiveHeaders和Chrome网络检查器检查了请求和响应标头,没有区别.
编辑:澄清一下,这不是ajax向服务器发送cookie的问题.这是一个问题,当一个响应返回时,有效的set-cookies标题(根据文档应该遵守是否ajax),浏览器根本不保存cookie.
我有一个使用fetch polyfill的项目isomorphic-fetch.我想用URLSearchParams来提交POST数据.对于fetch以支持URLSearchParams,它首先检查它是否在全局对象中可用.我虽然使用这个 polyfill但我不知道如何在webpack中正确导入它,所以fetch注意到它是可用的.
我怎么能做到这一点?谢谢!
我尝试Unauthorized使用redux-saga 处理来自服务器的错误.这是我的传奇:
function* logIn(action) {
try {
const user = yield call(Api.logIn, action);
yield put({type: types.LOG_IN_SUCCEEDED, user});
} catch (error) {
yield put({type: types.LOG_IN_FAILED, error});
}
}
Run Code Online (Sandbox Code Playgroud)
我获取这样的数据:
fetchUser(action) {
const {username, password} = action.user;
const body = {username, password};
return fetch(LOGIN_URL, {
method,
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify(body)
})
.then(res => {
res.json().then(json => {
if (res.status >= 200 && res.status < 300) {
return json
} else {
throw res
}
}) …Run Code Online (Sandbox Code Playgroud) fetch ×10
javascript ×6
reactjs ×4
json ×2
react-native ×2
ajax ×1
axios ×1
caching ×1
cookies ×1
http-delete ×1
http-headers ×1
http-put ×1
oauth-2.0 ×1
pdo ×1
php ×1
polyfills ×1
redirect ×1
redux ×1
redux-saga ×1
webpack ×1