我目前正致力于将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上运行。提前谢谢。
答案 0 :(得分:0)
找到解决方案:
有一个关于windows的应用程序存储目录指向&#34; ms-appx:///&#34;的错误,但它应该指向&#34; ms-appdata:/// &#34 ;.我向github提交了拉取请求。
Windows目录localState /无法直接使用。要在cordova中使用该目录,您的路径应该是本地/
所以正确的路径是&#34; ms-appdata:///local/cordova/my.xml"而不是&#34; ms-appx:///localState/cordova/my.xml"。