【问题标题】:(Windows 8 Javascript) WinJS.xhr does not reflect changes from api(Windows 8 Javascript)WinJS.xhr 不反映来自 api 的更改
【发布时间】:2014-02-06 08:40:38
【问题描述】:

我正在开发一个应用程序,我通过 wifi-sd 卡从单反访问照片。现在,我正在尝试从相机上的特定位置检索 html 响应并检索所有图像的文件名。一切顺利,我正在检索 html 响应;但是,它不会更新。我一遍又一遍地收到相同的回复(即使我删除或拍摄新照片)。

这几天一直被这个问题困扰。希望有人可以帮助我。这是我的代码:

function retrieveImgFileNames() 
{
    var url = "http://my-sd-card-host:port/path";
    WinJS.xhr({ url: url, responseType: "text" })
    .done(function (r) {
        var doc = document.createElement("html");
        doc.innerHTML = r.response;
        var links = doc.getElementsByTagName("a")
        var imgs = [];
        var imgCount = 0;
        var notImg = [];

        for (var i = 0; i < links.length; i++) {
            var fileName = links[i].getAttribute("href");
            if (fileName.substring(fileName.length - 3, fileName.length) == 'JPG') {
                imgs.push(fileName);
                imgCount++;
            }
            else {
                notImg.push(fileName);
            }
        }

    }, function (r) {
        document.getElementById("msg").innerHTML = "Sorry. :( Error: " + r.statusText;
    });
}

【问题讨论】:

  • 我不确定这是否有助于解决您的特定问题,但您可以尝试使用 Windows.Web.Http.HttpClient 类而不是 WinJS.xhr 的代码。
  • @EricSchmidt-MSFT 好的。我会试试的。感谢回复!
  • 您好 Eric,尝试了 HttpClient 但仍然得到相同的结果。我还尝试从远程计算机访问一个简单的网络应用程序,而不是 wifi sd 卡。我在我的界面中放了一个按钮来获取来自网络应用程序的响应。正如我从控制台观察到的,无论我在按钮上单击了多少次,命令 GET 只发生一次。知道为什么会这样吗? :|
  • 由于需求变化,我切换到WP8开发,还是遇到了同样的问题。我通过在我的 url 中添加一个可选参数来解决这个问题,如图所示 here 显然,默认情况下会缓存 Web 内容。有什么好的文章吗?
  • 哇,很高兴知道。我们还没有任何关于此的文章,但我会记住它。感谢您的反馈,乔!我将在 Windows 应用商店应用程序中对其进行测试,看看它是否有所作为。

标签: javascript visual-studio-2012 windows-8 winjs


【解决方案1】:

您可以尝试添加具有较低值的If-Modified-Since 标头,例如Thu, 01 Jan 1970 00:00:00 GMT

参考http://msdn.microsoft.com/en-us/library/windows/apps/hh868281.aspx

【讨论】:

    猜你喜欢
    • 2020-12-20
    • 2016-11-12
    • 2012-04-30
    • 1970-01-01
    • 2020-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-12
    相关资源
    最近更新 更多