无法通过纹波仿真器访问Internet

时间:2015-02-25 04:22:43

标签: cross-domain visual-studio-cordova ripple

我创建了一个VS Cordova项目,需要从Web服务下载一些数据,但Ripple在Chrome中运行,而Chrome认为该请求是“跨域”并阻止它。将ripple proxy选项设置为disabled / local / remote无效。我可以使用--web-security-disabled命令行选项启动另一个Chrome实例,将其指向相同的网址http://localhost:4409/ ...并且应用程序在第二个Chrome中正常运行。现在我需要的是在Visual Studio中按F5启动它时,找到一种方法将--web-security-disabled传递给Chrome。它可能在某个配置文件中的某个地方,只需要找到它......

1 个答案:

答案 0 :(得分:1)

如果不查看确切的代码,很难知道,但可能会发生以下几种情况之一:

  1. 您的代码绕过Ripple中的CORS代理
  2. 通过Ripple进行代理会导致Web服务器拒绝请求。
  3. 您在Chrome中安装了Ripple扩展程序。实际上,您最终可能会运行两个涟漪,这可能会导致许多意外行为。
  4. 要知道发生了什么,请确保将CORS代理设置为" local"并检查网络选项卡。 XHR对www.bing.com的调用看起来像这样:

    http://localhost:4400/ripple/xhr_proxy?tinyhippos_apikey=ABC&tinyhippos_rurl=http%3A//www.bing.com

    尝试从index.html页面执行此操作,看看它是否成功通过代理。

        var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET", "http://www.bing.com", true);
        xmlhttp.send();
    

    如果您需要进一步调试或者想在Visual Studio之外使用Ripple,您实际上可以安装Ripple npm包并在Visual Studio之外使用它。在debug config中为Android构建,然后转到bld / Debug文件夹并从命令提示符执行以下命令:

        npm install -g ripple-emulator
        ripple emulate android --port 12345
    

    将出现一个浏览器窗口。如果它不是您的默认值,请将其粘贴到Chrome中,然后重试。然后,您可以在命令提示符中查看代理的内容。

    您还可以使用相同的方法使用Chrome开发工具调试您的应用,并禁用--web-security-。