【问题标题】:phonegap jquery cross domain htmlphonegap jquery 跨域 html
【发布时间】:2014-07-08 00:06:33
【问题描述】:

起初:对不起我的英语不好... 我也是 js、css、html、jquery、phonegap 等方面的新手。

  1. 跨域应该不是问题,因为 PhoneGap 是一个文件库 (file:///),这种限制不适用,对吧?

  2. 我知道,我需要像这里一样在我的 config.xml 中将服务器列入白名单 http://docs.build.phonegap.com/en_US/configuring_access_elements.md.html#Access%20Elements

  3. 但是最好的方法是什么?一个简单的http请求?插件? ajax ?(我听说 ajax 不擅长 file:/// 请求)....我应该 使用

    1. 代理
    2. JSONP
    3. CORS(跨域资源共享)

在这里您可以看到来自服务器的 html 代码的样子:

<html>
<head>
    <title>Memorycards</title>
    <link rel="stylesheet" href="/stylesheets/style.css">
</head>
    <body>
        <h1>Memorycards</h1>
        <p>here are all Memorycards
            <li><a href="/memorycard/link1">memory1</a></li>
            <li><a href="/memorycard/link2">memory2</a></li>
        </p><a href="/newmemorycard/link3">new Memorycard <br></a>
     </body>
</html>

我想把名字 (memory1, memory2) 放到一个列表中,把链接 (link1, link2) 放到另一个列表中。

希望大家能帮帮我!

【问题讨论】:

  • 我相信您需要使用您不想使用的三件事之一来将远程结果返回到在本地设备(跨站点)上执行的应用程序。所有本地请求都在沙盒安全环境中。
  • 你认为我应该使用什么? cors 不是选项,所以我可以使用 jsonp 或代理。如果我应该使用代理,使用 corsproxy.com 就足够了吗?还是我需要在 php 中编写自己的代理?

标签: javascript jquery cordova cross-domain


【解决方案1】:

我过去在 ASP.NET 中所做的事情是使用本地资源(如代理)包装所有外部 json/xml 请求。它建立连接并简单地返回结果,然后您可以使用任何基于 javascript 的应用程序并使用 jsonp 绕过。

Javascript 本地应用程序 远程资源

例如,假设您需要访问http://remotehost.com/app.php 上的结果。您可以做的是编写一个使用您的 javascript 部署的本地应用程序(我们称之为 remoteapp.php),它只是调用此资源并回显响应。然后,您只需使用简单的 ajax GET 通过您的 javascript 调用 remoteapp.php,您就会得到 http://remotehost.com/app.php 的结果。

鉴于您无法使用 CORS 的限制,并且可能不想依赖另一个 XSS 应用程序 (corsproxy.com),这似乎是您最好的选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    相关资源
    最近更新 更多