我需要从远程服务器下载.jpg图像并将其转换为base64格式.我正在使用axios作为我的HTTP客户端.我已经尝试向服务器发出一个git请求并检查response.data
它,但它似乎不像那样工作.
链接到axios:https://github.com/mzabriskie/axios
链接到base64实现:https://www.npmjs.com/package/base-64
我正在使用NodeJS/React,所以atob/btoa不起作用,hense the library.
axios.get('http://placehold.it/32').then(response => {
console.log(response.data); // Blank
console.log(response.data == null); // False
console.log(base64.encode(response.data); // Blank
}).catch(err => console.log(err));
Run Code Online (Sandbox Code Playgroud) 我的页面上有一个动态页脚,我希望它上面的内容可以扩展到页脚的顶部,这很好,但是我遇到了一个问题:
#snippet-container {
height: 300px;
width: 200px;
}
#page {
display: flex;
flex-flow: column;
height: 100%;
}
#content {
flex: 1 1 auto;
background: blue;
}
#content .test {
width: 100%;
height: 100%;
background: yellow;
border: 2px solid red;
}
#footer {
flex: 0 1 10vh;
background: black;
}
Run Code Online (Sandbox Code Playgroud)
<div id="snippet-container">
<div id="page">
<div id="content">
<div class="test"></div>
</div>
<div id="footer"></div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我希望.test
元素填充#content
元素,因此100%/100% width/height
它不会.
当我.test
在片段中为元素添加红色边框时,您可以看到这反映出来.
我很难在swift中向工具栏添加一个按钮,下面你可以看到我正在使用的工具栏图像,不幸的是即使我在Storyboard文件中设计了它,它也不会显示在将工具栏设置为可见.
我设计这个的方式是两个项目,第一个是flexable space
元素,第二个是add
元素.它看起来像这样:
这是我用来尝试在代码中复制它的代码:
self.navigationController?.toolbarHidden = false
self.navigationController?.toolbarItems = [UIBarButtonItem]()
self.navigationController?.toolbarItems?.append(
UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: self, action: nil)
)
self.navigationController?.toolbarItems?.append(
UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: "onClickedToolbeltButton:")
)
Run Code Online (Sandbox Code Playgroud)
如您所见,我将工具栏设置为可见,初始化(和清除)UIBarButtonItem的toolbarItems数组,然后以正确的顺序将两个UIBarButtonItem添加到数组中.
但是,工具带仍然是空的,为什么会这样呢?
我正在使用 <datalist>
<datalist id="items"></datalist>
Run Code Online (Sandbox Code Playgroud)
并使用AJAX填充列表
function callServer (input) {
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
//return the JSON object
console.log(xmlhttp.responseText);
var arr = JSON.parse(xmlhttp.responseText);
var parentDiv = document.getElementById('items');
parentDiv.innerHTML = "";
//fill the options in the document
for(var x = 0; x < arr.length; x++) {
var option = document.createElement('option');
option.value = arr[x][0];
option.innerHTML = arr[x][1];
//add each autocomplete option to the 'list'
option.addEventListener("click", function() {
console.log("Test");
});
parentDiv.appendChild(option);
};
} …
Run Code Online (Sandbox Code Playgroud) 我不确定这是否与编程相关,但由于我没有Facebook SDK的经验,我只是假设我在某处做错了,即使我已经按照文档进行了操作T
.
我正在为任何好奇的人使用Unity SDK,我使用FB.AppRequest将邀请发送到应用程序,我的应用程序中的代码看起来与文档中的代码完全相同.
public void InviteFriends() {
FB.AppRequest(
message: "Come play this great game!",
callback: LogCallback
);
}
void LogCallback(FBResult result) {
Debug.Log("Callback was called: " + result.Text);
}
Run Code Online (Sandbox Code Playgroud)
这会按预期显示该框,并允许我邀请朋友,并且该朋友确实获得了邀请,但是一旦他们点击邀请,他们就会被重定向到如下所示的页面:
这给我带来了很多问题; 我已经检查了应用程序面板中的所有内容,似乎所有内容都已检出.我的Google Play游戏标识符和我的班级名称一样正确.我的关键哈希都是正确的.我不知道还能做些什么.如果您想在Play商店查找我的包标识符,buzz.qualify
我相信您会轻松找到它.
我还要补充一点,我有一个应用程序页面,可以在这里找到:https://www.facebook.com/pages/Qualify/1647231425506903?fref = ts
此页面也链接到开发人员控制台中的facebook应用程序.
我该怎么做才能解决这个问题?它在代码中吗?请帮助,这是一个为期4天的挫折,因此我们正在迅速失去进展.
已经有几天了,我们现在付钱给某人通过PayPal修复.
android facebook unity-game-engine facebook-graph-api facebook-unity-sdk
通过Java API,您会看到许多冲突的命名和实践,这对我来说确实很困惑.
例如:
该字符串类有名称的私有变量(整数),count
它记录了串的大小,但是这是由吸气通过返回的名称length()
.
如果你转移到任何类型的数组,而不是长度的getter方法,他们只是通过公共访问器传递变量,它可以通过arrayInstance.length
.
回到String类,我们有String#getBytes()
一个getter方法,类似于length()
getter,但是执行稍微更多的逻辑来获取并返回值.
对我个人来说,创建一个带有前缀的getter get
似乎是多余的,例如我宁愿打字GamePacket#data()
,GamePacket#getData()
但是我觉得这个命名背后可能有更深层次的含义而不仅仅是不一致.
另外,为什么不Array[]
使用吸气剂length
?
有人会对我有所了解吗?
在离开我们自己的NodeJS后端运行快车后,我们一直在我们的应用程序上使用Firebase,在此过渡期间,我们注意到一个主要缺点.客户端接收初始身份验证状态所需的时间.
当我的应用程序打开时,我立即注册onAuthStateChanged
回调以开始侦听身份验证状态的更改,这样我就可以将用户路由到他们的个人中心或身份验证屏幕.
问题是虽然有时这只需要几毫秒,但在其他时候(独立于互联网连接)它需要20秒以上,导致极差的用户体验.
我们在UIWebView组件上使用Firebase WEB API.
我已经在3G,4G,LTE和Wifi上进行了测试,这完全是随机的.有时它像闪电一样加载.有时它很慢,我质疑服务的可靠性.
有些人可能会说这是由于我们必须下载的用户数据,但我们等待的20-30秒是在我们甚至尝试从服务器提取数据之前.这只是为了获得初始授权状态.我们只使用电子邮件提供商.
有谁知道我们可以做些什么来改善这个?平均而言,onAuthStateChanged
回调是562ms
在应用程序执行后定义的.在此之后有时可能需要20-200ms
(平均延迟),有时需要20000ms +
我在通过我设置的承诺链传递参数时遇到了一些问题.这是我正在尝试做的一个基本的例子.
var dummyReq = { client: null };
var dummyUser = { email: 'user@secretdomain.com', password: 'admin' };
function printEmail(request, user) {
return new Promise((resolve, reject) => {
console.log('Email:', user.email);
return resolve(request, user);
});
}
function printPassword(request, user) {
return new Promise((resolve, reject) => {
console.log('Password:', user.password); // <-- user is undefined
return resolve(request, user);
});
}
printEmail(dummyReq, dummyUser)
.then(printPassword)
.catch(function(error) {
console.log('Unexepected error has occured');
});
Run Code Online (Sandbox Code Playgroud)
在第二个promise中,参数user是未定义的,我如何通过promise链传递多个参数,因为这些promises继续将更多信息添加到链中,到最后我将5个值传递给最后一个promise.
我应该只使用ES6运算符将它们组合成一个对象并在每次调用时解构它们吗?例如return resolve({request, user})
然后const { request, user } = param
我正在努力使REST API不再总是响应,如果出现问题,将在返回的JSON中STATUS: 200 OK
包含一个error
密钥,并在出现问题时尝试使用正确的状态代码。
到目前为止,我已经将服务器的大部分移动到了正确的状态代码 200, 201, 400, 401, 403, 404, 500, 501, and 503
目前,我正在尝试找出最有效的方法来拒绝过时的客户端对API调用的访问。目前,我正在发送使用授权令牌编码的客户端版本。
我被困在使用状态码之间426, and 412
。426状态代码的标题似乎就像我想要的用例,但是描述让我有些担心。 412
如果我将版本控制从授权令牌中移开,并将其放在自己的标头中,这似乎是合适的。
这是我的第一个REST API,并且效果很好,我只是想将其转换为遵循最佳实践。所以我有点困惑。
TLDR;
注意:我的客户端不是Web浏览器。它是一种移动设备。