如何在 Javascript 中为 Windows 小工具访问来自不同源的 XML 数据
我之前看过这个网站,但找不到我认为可以与 Windows 7 上的桌面小工具一起使用的响应。
基本上,我想使用 Javascript(或任何允许我访问的内容)从weather.gov 访问 XML 数据要访问它,只要我可以在桌面小工具环境中用 javascript 编写其余部分)。 XML url 根据用户的位置而变化,因此我还需要能够使用动态 url(我只知道如何在 JS 中执行此操作)。
任何帮助将不胜感激。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,我会尝试一个普通的
XMLHttpRequest()
如果这不起作用,另一个堆栈溢出问题对于如何开始开发 Windows 小工具有很好的答案。那里的链接之一可能应该有所帮助。
如何开始使用 Windows 7 小工具
[编辑] 更多添加
在您的评论中,“SOP”是指同源政策吗?如果是这样,那么也许小工具会强制执行它 - 如果它们这样做的话,看起来很蹩脚 - 我没有使用小工具的经验,所以我不知道。
由于您无法控制第三方服务器,因此我通常会提到(JSONP或 CORS)不要立即应用。
您可以创建自己的网络服务来连接第三方,但设置代理服务器。 Nginx 使这非常简单。
另一个值得考虑的选择是 Yahoo!管道。您可以创建一个管道来读取天气数据并生成其他内容。 Pipes 支持 JSONP,这将允许您规避同源限制。事实上,似乎有人已经完成了此操作。
希望这有帮助!
To start off, I'd try a normal
XMLHttpRequest()
If that doesn't work, this other stack overflow question has good answers about how to get started developing Windows gadgets. One of the links there should probably help.
How to get started with Windows 7 gadgets
[edit] more added
In your comment, by "SOP" do you mean Same Origin Policy? If so, then maybe gadgets enforce it - seems pretty lame if they do - I have no experience with gadgets, so I don't know.
Since you don't control the third party server, the usual things I'd mention (JSONP or CORS) don't immediately apply.
You could create your own web service which reaches out to the third party, but it'd be easier to set up a proxy server. Nginx makes this pretty easy.
Another option to consider is Yahoo! Pipes. You could create a pipe to read from the weather data and produce something else. Pipes has support for JSONP, which would allow you to circumvent the same origin restriction. In fact, it looks like someone has already done this.
Hope this helps!