URL输入时JSON无效但复制和粘贴时有效

时间:2012-11-15 21:22:35

标签: php javascript json windows-8

我正在尝试为Windows 8应用验证以下JSON网址。问题是以下代码运行它不会绑定到提供的列表框。我知道代码可以工作,并将其单独添加到我创建的JSON中。

 new WinJS.Binding.List(json.results);

在本网站上看到的JSON在网站上显示为有效......

http://avalonfashions.ie/JSON/ut4.php

..如果我将URL复制并粘贴到json valadator中,例如jsonlint.com,我得到:

Parse error on line 1 <\!DOCTYPEhtmlPUBLIC" ^ Expecting '{', '['

..但是当我复制并粘贴代码时,URL有效。

我知道这是一个简单的解决方案,但我不能让它为我的生活而工作。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

问题是URL没有返回正确的JSON响应。它返回一个HTML响应,其中包含格式化代码块中的JSON。因此,虽然复制和粘贴它将起作用,但您的代码将看到包装它并破坏的所有HTML(因为它无效)。

如果这是您控制的API,则需要在PHP脚本(Content-type)中设置header('Content-type: application/json')标头,并且只返回JSON字符串,而不返回任何HTML代码。< / p>

如果不是,最好的办法是获取URL,然后从响应中删除所有HTML,以便解析剩余的JSON。 DOM解析库可以帮助您完成此任务。

编辑:现在响应现在(或已经)正确,并且在http://jsonlint.com处验证正常。