











异步http请求的跨域问题,google一下已经有好几种解决方案了,像是JSONP、window.name等方式,没细看,感觉都挺麻烦的。
无意中看到一种借用CSSHttpRequest的方式(相对应于XmlHttpRequest),借助于web页面对css的请求无domain限制的原理,在server端将需要的数据编码成css方式返回给client,而client借助js来解码数据并执行相应操作,ok啦,简单、方便。http://nb.io地址可能是访问不了的,把文章贴出来(google):
nb.io
CSSHttpRequest is cross-domain AJAX using CSS.
Like JavaScript includes, this works because CSS is not subject to the same-origin policy that affects XMLHttpRequest. CSSHttpRequest functions similarly to JSONP , and is limited to making GET requests. Unlike JSONP, untrusted third-party JavaScript cannot execute in the context of the calling page.
A request is invoked using the CSSHttpRequest.get(url, callback) function:
CSSHttpRequest.get(
Data is encoded on the server into URI-encoded 2KB chunks and serialized into CSS rules with a modified data: URI scheme. The selector should be in the form #c<N> , where N is an integer index in [0,]. The response is decoded and returned to the callback function as a string:
#c0 { background: url(data:,Hello%20World!); }
#c1 { background: url(data:,I’m%20text%20encoded%20in%20CSS!); }
#c2 { background: url(data:,I%20like%20arts%20and%20crafts.); }
CSSHttpRequest * is open source under an Apache License (Version 2.0).
* Or as Eric refers to it, AJACSS (slightly more electro). * Or as Eric refers to it, AJACSS (slightly more electro).
源码在github上的下载地址:http://github.com/nbio/csshttprequest/tree/master, 目前有Python/Ruby/PHP的server端实现(即编码功能),抽时间可以做一下其他实现,如.NET
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。