2

我正在尝试将现有的 html5 应用程序迁移到 Metro 应用程序中,并发现两个主要障碍:

  1. 由于安全原因,不支持 .innerHtml
  2. $.Ajax 不起作用(我正在使用 jsonp 从服务器交换数据)

问题:

  1. 如何绕过 .innerHtml 的安全问题?
  2. 我还有什么其他选择可以使 $.Ajax 工作?
4

2 回答 2

1

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);
    });
}
于 2012-04-28T19:12:34.887 回答
0

.innerHtmlQ1:当您用于动态内容时,WinRT 块会引发异常或警告。但它们不会一直阻止您使用.innerHTML。您是否尝试过toStaticHTML如下方法:

element.querySelector("#myId").innerHTML = "some string" + toStaticHTML(yourHTMLContent);

Q2:常规的 javascriptxhr调用对我有用。其实我相信我以前曾经.ajax发送过一些简单的GETPOST请求,但最终xhr因为一些其他原因而使用

希望这可以帮助。

于 2012-04-29T06:37:55.533 回答