跨域资源共享和file://
我正在编写一个HTML5应用程序,该应用程序使用JSONP从几个不同的来源收集数据。我对GET所做的任何事情都可以正常工作。我现在正尝试发布数据,并且遇到了一个有趣的问题。我需要将数据从我的应用程序发布到另一个应用程序,该应用程序从本地计算机运行。我正在尝试编写具有跨平台功能的移动应用程序(请考虑使用Pulse
/ Flipboard),因此该代码将始终从本地源运行。我的思考过程如下:
- 使用JSONP-JSONP不允许发布,只是无法正常工作(将数据发布到JsonP)
- 依靠CORS-由于请求来自使用的本地源
file://
,因此起始标头为null。这将导致请求失败(XmlHttpRequest错误:Access-Control-Allow-Origin不允许使用Origin null) - 使用另一台服务器来退回请求-这会很昂贵
我要定位的所有浏览器都是基于Webkit的(iPad,Playbook,Android),所以我想知道在相同的原始策略代码中是否存在我可以偷偷摸摸的吱吱声?也许使用iframe或postMessage?
回答:
事实证明,最简单的方法是将发布到iframe中的目标网址。大多数浏览器使用相同的源策略,可以执行从一个域到另一个不相关域的HTTP
POST。我通过向页面添加iframe(最初设置为本地自举页面)解决了该问题。由于该页面是从同一域加载的,因此我可以通过脚本来控制它。我使用该表单将表单发布到我的目标站点,并轮询结果以确定我的呼叫是否成功。它不优雅,但可以。
以上是 跨域资源共享和file:// 的全部内容, 来源链接: utcz.com/qa/408088.html