【发布时间】:2011-07-05 12:21:39
【问题描述】:
我正在编写一个 HTML5 应用程序,它使用 JSONP 从几个不同的来源收集数据。我用 GET 做的任何事情都很完美。我现在正在尝试发布数据,但遇到了一个有趣的障碍。我需要将数据从我的应用程序发布到另一个,我的应用程序在本地机器上运行。我正在尝试编写一个支持跨平台的移动应用程序(想想 Pulse/Flipboard),因此代码将始终从本地源运行。我的思考过程如下:
- 使用 JSONP - JSONP 不允许发布,它只是不能那样工作 (Post data to JsonP)
- 依赖 CORS - 由于请求来自使用
file://的本地源,因此源标头为空。这会导致请求失败 (XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin) - 使用另一台服务器退回请求 - 这会很昂贵
我所针对的所有浏览器都是基于 webkit 的(iPad、Playbook、Android),所以我想知道在同一源策略代码中是否有任何我可以偷偷通过的吱吱声?也许使用 iframe 或 postMessage 的东西?
【问题讨论】:
-
“这导致请求失败(XmlHttpRequest错误:Access-Control-Allow-Origin不允许Origin null)” - 在当前浏览器中是允许的,所以问题已经过时了.
-
能否详细说明第三个项目符号?我想我和你有同样的问题,但我不明白如何使用其他服务器。
标签: javascript ajax json html jsonp