我正在尝试将现有的 html5 应用程序迁移到 Metro 应用程序中,并发现两个主要障碍:
- 由于安全原因,不支持 .innerHtml
- $.Ajax 不起作用(我正在使用 jsonp 从服务器交换数据)
问题:
- 如何绕过 .innerHtml 的安全问题?
- 我还有什么其他选择可以使 $.Ajax 工作?
我正在尝试将现有的 html5 应用程序迁移到 Metro 应用程序中,并发现两个主要障碍:
问题:
Q2:我遇到了类似的问题,我将 $.get 更改为:
function getJSON(url, data, callback, errorCb) {
if (data != null)
{
var params = [];
for (var key in data) {
params.push(key + "=" + encodeURI(data[key]));
}
url += "?" + params.join("&");
}
WinJS.xhr({ url: url }).then(
function (result) {
if (callback != null)
callback(result.response, result.status);
},
function (result) {
if (errorCb)
errorCb(result.status);
});
}
.innerHtml
Q1:当您用于动态内容时,WinRT 块会引发异常或警告。但它们不会一直阻止您使用.innerHTML
。您是否尝试过toStaticHTML
如下方法:
element.querySelector("#myId").innerHTML = "some string" + toStaticHTML(yourHTMLContent);
Q2:常规的 javascriptxhr
调用对我有用。其实我相信我以前曾经.ajax
发送过一些简单的GET
或POST
请求,但最终xhr
因为一些其他原因而使用
希望这可以帮助。