代码之家  ›  专栏  ›  技术社区  ›  makerofthings7

JSON与XML—XML是否需要“本地代理”?那是什么?

  •  0
  • makerofthings7  · 技术社区  · 15 年前

    我在看书 this 文章将XML与JSON进行了比较,在comments部分,用户提到需要使用“本地代理”来访问XML。

    有人能解释一下本地代理在这种情况下是什么意思吗?我假设他是指Javascript,但我愿意理解其他语言(C#等)中有哪些解析器可用

    2 回复  |  直到 15 年前
        1
  •  2
  •   epascarello    15 年前

    JavaScript有一个 Same Origin Policy 这使您无法访问其他域的内容。这会阻止XMLHttpRequest对象从其他域检索XML文件的内容。

    本地代理只是一个简单的文件,它只是将请求从您的域重新路由到另一个域并获取内容。这样就满足了相同的orgin策略。

    JSON不受限制的原因是JavaScript、图像和CSS文件可以从其他域引用。因为JavaScript文件可以从其他域加载,所以我们可以使用 JSONP (带填充的JSON)获取内容。

    大多数人都认为JSONP不安全,因为任何内容都可以注入JavaScript文件。你只需要相信你的来源,他们不会注入任何坏的内容(广告,弹出窗口,跟踪的东西,等等)到网页。

        2
  •  2
  •   Luca Matteis    15 年前

    这与JSONP(用户在注释中声明)有关,JSONP基本上定义了JavaScript执行远程源代码中提供的任何内容的能力 <script src="http://url.com/file"></script> ,并使浏览器能够从远程源检索数据。

    我自己不喜欢JSONP术语,因为您也可以执行XML,所以用户的注释实际上是错误的。你可以退一些东西 run('<some xml></some xml>') 在您的服务器上,然后使用内置的JavaScript XML解析器来获取您需要的数据-它不需要是JSON。