我正在开发一个REST客户端,它会跟所谓的attask项目管理服务。
他们的REST API很方便,因为它返回简单的JSON,很容易在我的代码中使用。正因为如此,我决定建立使用jQuery的接口。我很快发现,我无法使用AJAX从我的站点向Attask API,因为Same Origin Policy的。
我首先想到的是开发服务器端REST客户端使用RESTSharp,将作为我的JavaScript和Attask API之间的桥梁。
我还没来得及开始使用该实现我发现JSONP。这是新的我。事实证明,在Attask API支持JSONP。 jQuery的JSONP支持原生太突然了,我回制作完整的jQuery接口,无需服务器端干预。
我的问题是,有没有理由不使用JSONP?会有到要加倍努力,建设了服务器端REST客户端,并使用真正的AJAX调用任何好处?
只要记住,JSONP是你在寻找什么:对同源策略解决方法。随着这会是同源策略是为了避免所有安全问题。好处是,你可以选择您信任的特定领域。缺点是,如果该域名的决定侵犯了您的信任,他们现在可以在网页上运行任意JavaScript代码,允许他们任何他们想要的信息发送到自己的服务器。
如果您信任他们,去了。如果你不这样做,建立自己的服务器端代理。