我最近一直在尝试构建一个跨域的web api,哇,这是一段坎坷的旅程。我对Chrome、FF和Safari等现代浏览器没有任何问题。问题出在IE上,它要求您在进行跨域调用时使用XDR,而不是$.ajax。第一个问题:如果我使用的是Backbone.js,建议使用什么方法进行跨浏览器和跨域ajax调用
我在IE上遇到的另一个问题是,当你发出跨域ajax请求时,IE有很多限制和限制,比如"请求的Content-Type标头只支持text/plain"——一个链接。因此,在我的情况下,我无法使用MVC C#框架绑定到我的模型,除非我手动绑定它。
无论如何,我的第二个也是最后一个问题是:像Instagram、Facebook和Twitter这样的公司如何构建他们的API我不是在寻找一个完整的指南,只是想知道它有多难。
JSONP
目前的标准是使用JSONP。发送一个封装在单个JavaScript函数中的JSON有效载荷基本上是一个技巧,浏览器将其视为脚本文件并执行它
CORS
前进的道路是CORS。遗憾的是,浏览器支持(IE)还不存在,而且在实现它的现代浏览器之间仍然存在一些实现差异
HTTP方法过载
一些API使用X-HTTP-Method-Override: PUT
或?_method=PUT
来重载GET
和POST
请求。
easyXDM
许多API提供程序实现了easyXDM。当他们提供JavaScript API或小部件API时,这往往会被更多地使用,开发人员在其中加载JS并将其直接集成到前端代码中。