过去一两周我一直在使用 jQuery 库。
非常方便!我现在正在使用 AJAX 请求来检索天气、当前下载等内容,到目前为止进展顺利!
我现在尝试连接到我的 ISP 以获取当前的数据使用情况(高峰、非高峰等)。
当我使用 Chrome 时,我可以手动在 URL 中输入变量,并在浏览器中显示所需的 JSON 代码。问题是,它似乎返回 text/html
而不是 application/json
。
当您进入开发人员工具时,它会显示text/html
。这使得我很难使用 AJAX 和 JSONP 从我的家庭服务器检索数据。请参阅此处查看失败的查询(但您仍然可以看到 JSON 格式的 text/html
输出!
Failed JSON Query on ISP
我的问题是,如何从服务器 URL 获取这些数据,然后将其转换为 jQuery 可以读取的 JSON?
当我尝试 .load
、 $.get
函数时,我遇到了跨源问题...
编辑:Here is the PDF documentation for the API (Download at the bottom of the page) 请注意,我需要附加某些值(用户/通行证/ token )。我的最终目标是让我的 JS 读取这些值并存储它们。
最佳答案
The issue is, that it seems to return
text/html
instead ofapplication/json
.
这是服务器端问题。去提交错误报告。
This make it difficult for me to retrieve the data
不是单独的。您应该能够覆盖如何解析响应的设置,例如在 jQuery通过使用datatype
参数。
using AJAX and JSONP
请注意,您不能使用 JSONP ,因为该 API 不支持它(从文档和简单的 ?callback=test
尝试来看)。如果您需要支持,请针对服务提供商提交错误报告。
When I try the
.load
,$.get
functions I run into Cross Origin Issues...
是的。他们不发送CORS标题也可以。我怀疑此 API 仅在内部使用,并且由不受同源策略约束的设备使用。
how could I get this data from the server URL, then make it into JSON that jQuery can read?
使用 proxy在您自己的服务器上(与您的应用程序在同一域中运行)。它还可以修复 content-type
header 。
有关更多详细信息,另请参阅 Ways to circumvent the same-origin policy ,尽管大多数方法需要服务提供商的合作(以实现服务器端功能)。
关于javascript - 请求 JSONP 时的 text/html 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27536526/