当前位置: 首页 > 面试题库 >

跨域资源共享和file://

席宜修
2023-03-14
问题内容

我正在编写一个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(最初设置为本地自举页面)解决了该问题。由于该页面是从同一域加载的,因此我可以通过脚本来控制它。我使用该表单将表单发布到我的目标站点,并轮询结果以确定我的呼叫是否成功。它不优雅,但可以。



 类似资料:
  • 跨域资源共享 (CORS) 跨域资源共享(Cross-Origin Resource Sharing)允许WEB端的应用程序访问不属于本域的资源 配置格式 CORS配置为json字符串,类似 { "rules":[ { "id":"id1" "AllowOrigin":"http://*.example.com" //指定允许发送跨源请求的源,支持使用通配符

  • 问题内容: 我对跨域JavaScript的概念有疑问。 有一个服务器(ex amazon.com),在其中只有选定的域可以使用其Web服务。所以可以肯定,如果我尝试从本地使用他们的服务,我将无法。我在控制台上得到了这个 跨域请求被阻止:“同源起源”策略禁止读取http://football20.myfantasyleague.com/2014/export?TYPE=rosters&L=52761

  • 本文向大家介绍js跨域资源共享 基础篇,包括了js跨域资源共享 基础篇的使用技巧和注意事项,需要的朋友参考一下 本文详细介绍了javascript跨域资源共享,供大家参考,具体内容如下 1.为什么提出跨域资源共享(CORS)?     因为XHR实现ajax的安全限制是:XHR 对象只能访问与包含它的页面位于同一个域中的资源 2.如何实现跨域?(跨浏览器) 以上就是本文的全部内容,希望对大家的学习

  • 我有两个ruby on rails应用程序,分别位于两个不同的域上(例如和)

  • 通过XHR 实现Ajax 通信的一个主要限制,来源于跨域安全策略。默认情况下,XHR 对象只能访问与包含它的页面位于同一个域中的资源。这种安全策略可以预防某些恶意行为。但是,实现合理的跨域请求对开发某些浏览器应用程序也是至关重要的。 CORS(Cross-Origin Resource Sharing,跨源资源共享)是W3C 的一个工作草案,定义了在必须访问跨源资源时,浏览器与服务器应该如何沟通。

  • 问题内容: Firefox存在一个长期存在的问题,即不加载与当前网页不同来源的字体。通常,在CDN上提供字体时会出现问题。 随着Amazon S3 CORS的推出,是否存在使用CORS解决Firefox中字体加载问题的解决方案? 编辑:非常高兴看到S3 CORS配置的示例。 edit2:我找到了一个可行的解决方案,但实际上并没有理解它的作用。如果任何人都可以提供有关配置的更详细的解释以及亚马逊解释