有没有理由不使用JSONP?

时间:2011-09-13 23:05:02

标签: c# jquery json rest jsonp

我正在开发一个REST客户端,它将与名为attask的项目管理服务进行通信。

他们的REST API很方便,因为它返回了在我的代码中易于使用的简单JSON。因此我决定用jQuery构建接口。我很快发现,由于Same Origin Policy,我不能将我网站上的AJAX用于Attask API。

我的第一个想法是使用RESTSharp开发一个服务器端休息客户端,它将充当我的javascript和Attask API之间的桥梁。

在开始使用该实现之前,我发现了JSONP。这对我来说是新的。事实证明,Attask API支持JSONP。 jQuery原生支持JSONP,所以我突然回到制作一个完整的jQuery接口而不需要服务器端干预。

我的问题是,有没有理由不使用JSONP?为了更进一步,构建服务器端REST客户端并使用真正的AJAX调用会有什么好处吗?

1 个答案:

答案 0 :(得分:6)

请记住,JSONP正是您正在寻找的:同源策略的解决方法。这将导致同源策略旨在避免的所有安全问题。好处是您可以选择您信任的特定域。缺点是,如果该域名决定违反您的信任,他们现在可以在您的网页上运行任意javascript代码,允许他们将他们想要的任何信息发送到他们自己的服务器。

如果你相信他们,那就去吧。如果不这样做,请设置自己的服务器端代理。