Ajax Cors Alternatives
Solution 1:
You can use third-party tools for tunneling, for example YQL.
The Yahoo! Query Language is an expressive SQL-like language that lets you query, filter, and join data across Web services.
YQL would act as a middleman to wire up calls from your site to your API. The network traffic would look like this:
Client -> YQL -> API Server
which looks fine to me.
YQL has been around for quite a long time. Their free quotas are favorable and uptime is pretty good, too:
Per IP limits: /v1/public/: 2,000 calls per hour; /v1/yql/: 20,000 calls per hour.
YQL has a performance uptime target of over 99.5%.
Moreover, quotas are constantly increasing and Yahoo! provides certain guarantees that if they decide to shutdown the service they'll keep it running for quite a while so you'll have time to migrate. There are several projects that use YQL today (I'm aware of one such service - TipTheWb.org)
In addition I suggest you to detect whether a given browser supports CORS and fallback to YQL only if necessary:
function browserSupportsCors() {
if ("withCredentials"innewXMLHttpRequest())
returntrue; // most browserselseif (typeof XDomainRequest == "object")
returntrue; // IE8+else// Opera currently here, but they'll get better pretty soon :)returnfalse;
}
or if you use jQuery it has a neat support
method.
if (!$.support.cors) {
// YQL fallback
}
There are also great tips to tweak YQL performance.
Thank you for caring about Opera users!
Solution 2:
The most common solution is indeed using a proxy script on your server.
The bandwidth is most likely negligible - we are talking about small requests, not huge downloads after all. And the server load is also minimal - and you could always use something asynchronous and lightweight such as node.js to reduce the load even more.
Post a Comment for "Ajax Cors Alternatives"