我想知道是否有一个JavaScript库,它覆盖XMLHttpRequest并允许透明地处理所有跨域请求,并在我的相同来源的服务器端代理上无缝地转发它们。
我想要的是有一个共同的解决方案,它可以与any JavaScript库一起使用来进行跨域请求(例如跨域jQuery.ajax())。
使用这样的库有什么缺点(安全问题、HTTPS访问等等)?
更新:
如果这样的库已经是由某个人创建的,那么我只是不想重新发明轮子,再次处理所有的角落案例。
发布于 2013-02-02 18:23:19
如果您只需要将每个请求重定向到一个特定的代理,您只需自己编写它,就可以在
XMLHttpRequest.prototype.oldOpen = XMLHttpRequest.prototype.open;
var newOpen = function(args) {
//overwrite arguments changing the original url to the proxy one,
//and add a parameter/header to send the original url to the proxy
this.oldOpen(args);
}
XMLHttpRequest.prototype.open = newOpen;由于代理位于同一个域中(如果您希望允许x域代理请求,只需添加访问控制-允许-原产地标头),它将不会被发送到远程域的任何cookie (无论如何,您不会拥有它们,因为x域cookie被阻塞-只要您不使用标头访问控制-允许-凭据进入字段)。
有些安全问题是相当明显的:
更复杂的代理实现(相同的域,以完全支持cookie)甚至可以为跨域请求提供基本的会话处理,重写标头:
但我可能已经消化太多了。:)
发布于 2013-02-02 19:28:20
我不会用JS来满足这种需要..。只需对充当代理的服务器上的PHP文件(或任何其他文件)进行所有AJAX调用即可。
它只需要接收您想要调用的url、POST或获取参数,然后向外部服务器发出一个cURL。
作为回报,它将打印cURL请求的输出。
https://stackoverflow.com/questions/14664813
复制相似问题