在Windows上通过Cordova中的ajax访问下载的文件

时间:2016-06-09 10:53:07

标签: ajax cordova win-universal-app

我目前正致力于将ios-Cordova应用迁移到Windows(10)Universal App。

在应用程序中我加载xml并使用XSLT解析它。 xml位于app-sandbox程序目录中的xsl文件中。我通过ajax加载它,它在ios上工作正常。

在Windows上,呼叫失败。

var xmlurl = cordova.file.applicationStorageDirectory+'localState/cordova/';
   xmlurl += 'my.xml';
   //xmlurl => ms-appx:///localState/cordova/my.xml
   $.ajax({
       type: "GET",
       url: xmlurl,
       dataType. "xml",
       async: false,
       success: function(xmlData){},
       error: function(XHMLHttpRequest, textStatus, errorThrown){
           // textStatus => error, errorThrown => Access denied

      });

对于跨站点支持,我添加了

$.support.cors = true;

我的内容安全政策

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: ms-appdata: ms-appx: ms-appx-web: 'unsafe-eval' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; media-src *">

我希望有人可以帮助在Windows上运行。提前谢谢。

1 个答案:

答案 0 :(得分:0)

找到解决方案:

  1. 有一个关于windows的应用程序存储目录指向&#34; ms-appx:///&#34;的错误,但它应该指向&#34; ms-appdata:/// &#34 ;.我向github提交了拉取请求。

  2. Windows目录localState /无法直接使用。要在cordova中使用该目录,您的路径应该是本地/

  3. 所以正确的路径是&#34; ms-appdata:///local/cordova/my.xml"而不是&#34; ms-appx:///localState/cordova/my.xml"。