手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表分类:苹果相关

Safari 11.1: ajax/XHR form submission fails when input[type=file] is empty

有时候真不知道苹果都在做些什么。。这次safari的更新会导致 form在使用xhr提交的时候,如果表单里有<input type="file" />但没有选择文件,这时候表单就提交失败了,本文的标题就是stackoverflow上面的人提出的问题。
大部分奇技淫巧(或者说奇巧淫技)都是说,如果判断input type=file,如果length==0,即没有选择文件,就先将它disable掉,然后new FormData后,再将它恢复。
 
原文看这里,提供了两个解决方案,一个是用jquery的,一个是不用的:https://stackoverflow.com/questions/49614091/safari-11-1-ajax-xhr-form-submission-fails-when-inputtype-file-is-empty
 
用JQuery:
JavaScript代码
  1. var $form = $('form')  
  2. var $inputs = $('input[type="file"]:not([disabled])', $form)  
  3. $inputs.each(function(_, input) {  
  4.   if (input.files.length > 0) return  
  5.   $(input).prop('disabled'true)  
  6. })  
  7. var formData = new FormData($form[0])  
  8. $inputs.prop('disabled'false)  
 
 
不用:
JavaScript代码
  1. var form = document.querySelector('form')  
  2. var inputs = form.querySelectorAll('input[type="file"]:not([disabled])')  
  3. inputs.forEach(function(input) {  
  4.   if (input.files.length > 0) return  
  5.   input.setAttribute('disabled''')  
  6. })  
  7. var formData = new FormData(form)  
  8. inputs.forEach(function(input) {  
  9.   input.removeAttribute('disabled')  
  10. })  
 
为什么safari还不更新????
更详细 更多的回复,直接看原文吧
 
 

mac 安装supervisor

 supervisor是一个python写的守护进程程序,如果你不想用xxx.sh & 或者用nohup xxx.sh > xxx & 这样的方式来运行程序,那么用supervisor是最简单的。

在macosx下,安装supervisor实在太简单了(网上的教程都是用pip来安装),对于mac来说,直接brew install supervisor就OK了。

然而装完后,你ps aux|grep supervisor,会发现其实进程不存在。而你用brew services start supervisor,却又提示你服务在运行。我靠这是多么大的一个坑?

其实还算比较简单,直接打开vim ~/Library/LaunchAgents/homebrew.mxcl.supervisor.plist,看看里面的执行文件路径,运行一下就知道了。

果然 就直接报错了!

XML/HTML代码
  1. /usr/local/opt/supervisor/bin/supervisord -n -c /usr/local/etc/supervisord.ini  
  2. Error: section [inet_http_server] has no port value  
  3. For help, use /usr/local/opt/supervisor/bin/supervisord -h  

咦。居然报[inet_http_server] has no port value?怪不得刚才用supervisorctl 的时候报:http://localhost:9001访问被拒绝。于是,修改/usr/local/etc/supervisord.ini,把那个注释掉的9001端口打开,再运行就OK了

cat一下supervisord.ini,会发现最后一行是include /usr/local/etc/supervisor.d/*.ini。这个时候就要注意了。

在其他平台都是加载的.conf,mac上是.ini,所以其他平台的不能直接复制过来就用!当然,这个目录本身也不存在:/usr/local/etc/supervisor.d/,要先mkdir一下。

好了,其他的就不说了。笔记一下,浪费我半小时时间

 

 

将Users目录迁移

 我的mac其实在一早使用的时候就分过区,结果 现在主分区快满了。感觉性能在下降于是就想将用户目录迁移。但目前没有看到特别好的办法。所以我就先用rsync迁移到另一个分区。再在个人设置里指定分区目录

1、先rsync到新的目录

2、到系统设置里找到登录,右键你自己的账号,选择高级设置。将用户目录指向刚才同步完的目录

3、系统提示你重启。确认重启

4、完事儿~,删除旧有目录(如果不放心就先保留一段时间)

就是这么简单

spotlight坏了。只能用alfred了

 不知道为什么spotlight突然坏了。重建索引 也没用。现在连做个加法都不OK了。只能。。。。用alfred了!

快捷键设置成一样,感觉好多了。一个星期没法用,感觉效率都降低了很多!

其实以前在windows上,我用的是launchy。就特别觉得好用,然后到了mac后,用spotlight,虽然 很多人一直说alfred好用,但那时候在试用下来,感觉我要的功能其实spotlight一样。而且打开速度还是spotlight更快。。。。

只是这次,突然不能用了。所以。哎~~

mariadb 用navicat查看 乱码

navicat是个好软件,mariadb也是,不过,默认的mariadb在查看的时候可能会是乱码(特别是debian 9,默认没有mysql,只有mariadb了)

 
1、进入console,如果set names utf8,然后select能够看到正常的数据,这证明几件事,client有问题,字符串不对
2、如果是1所说的问题。那么修改my.cnf,修改[mysqld] [mysql] [client]中的数据
XML/HTML代码
  1. [mysqld]下增加character-set-server=utf8  
  2. [client]下增加default-character-set=utf8  
  3. [mysql] 下增加default-character-set=utf8  
如果还是无效。。则尝试在mysqld下再增加:
XML/HTML代码(与上面的有一行重复)
  1. [mysqld]   
  2. init_connect='SET collation_connection = utf8_unicode_ci'   
  3. init_connect='SET NAMES utf8'   
  4. character-set-server=utf8   
  5. collation-server=utf8_unicode_ci   
  6. skip-character-set-client-handshake  
 
参考 :http://blog.csdn.net/fzq1988215/article/details/48808001