现代浏览器js跨域

js跨域一直是一个让人头疼的问题不过现代浏览器有一种针对API的解决方案就是Access-Control-Allow-Headers。

你可以通过Access-Control-Allow-Headers来控制允许哪些域的js来访问此资源。不过这中方法只是一个折中的方案,如果说使用起来还不如普通的跨域好用。并且ie11以下浏览器并不支持。

不过对于那些开放的API最好还是加上这个头。

nginx可以通过下面的一行来加上这个头,不过域名最好还是限定一下。
add_header Access-Control-Allow-Origin *;

Event与Message的区别

以前在开发的时候一直在混用这两个单词,完全没有咬文嚼字的区分它们,直到今天被某文档打脸之后……现在就写一下event和message的区别

百度了一下,上面的主流的说法是:
Message的来源是外界输入产生的,而Event的来源不仅包含Message,也包含通过变换Message得到的。除此之外,event通常在进程或者线程的同步中使用,而message通常在gui窗口中使用。(大概只限于native windows开发吧)

而Google了一下,得到的结果大概还是有一定的差别的。
根据StackOverflow的说法来讲,(在android开发中),Message是在相互独立的进程中沟通使用的。而更为主要的是一个是通过消息队列实现的,另一个是通过延时发送实现的
根据康奈尔大学的文档来讲:(在JChannel中),event是在栈内的通信,而Message是跨栈的通信

于是瞬间我凌乱了……好吧,大概这个的区别不是很大,在不同开发中还是要查文档(吐血