请求 JSONP 时的文本/html 输出

text/html output when requesting JSONP

本文关键字:html 输出 文本 JSONP 请求      更新时间:2023-09-26

在过去的一两周里,我一直在玩jQuery库。

非常方便!我现在正在使用 AJAX 请求来检索天气、当前下载等内容,到目前为止进展顺利!

我现在尝试连接到我的ISP以获取我当前的数据使用量(峰值,非峰值等(。

当我使用 Chrome 时,我可以手动在网址中输入变量,并在浏览器中显示所需的 JSON 代码。问题是,它似乎返回text/html而不是application/json

当您进入开发人员工具时,它会显示text/html .这使我很难使用 AJAX 和 JSONP 从我的主服务器检索数据。有关失败的查询,请参阅此处(但您仍然可以看到 JSON 格式的text/html输出!

ISP
上的 JSON 查询失败

我的问题是,我如何从服务器URL获取这些数据,然后将其制作成jQuery可以读取的JSON?

当我尝试.load时,$.get功能我遇到了跨源问题......

编辑:这是API的PDF文档(在页面底部下载(请注意,我需要附加某些值(用户/传递/令牌(。我的最终目标是让我的JS读取这些值并存储它们。

问题是,它似乎返回text/html而不是application/json

这是一个服务器端问题。去提交错误报告。

这使我难以检索数据

不是本身。您应该能够覆盖如何解析响应的设置,例如使用 datatype 参数在 jQuery 中。

使用 AJAX 和 JSONP

请注意,您不能使用 JSONP,因为该 API 不支持它(从文档和简单的?callback=test尝试来看(。如果需要这方面的支持,请针对服务提供商提交错误报告。

当我尝试.load时,$.get函数我遇到了跨源问题......

是的。他们也不发送 CORS 标头。我怀疑此 API 仅在内部使用,并且由不受同源策略约束的设备使用。

我怎样才能从服务器URL获取这些数据,然后将其制作成jQuery可以读取的JSON?

在您自己的服务器上使用代理(在与应用相同的域中运行(。它还可以修复该content-type标头。

有关更多详细信息,另请参阅规避同源策略的方法,尽管大多数方法需要服务提供商的合作(以实现服务器端功能(。

如果我理解正确,你要求某个值,它会给你一个字符串。对于世界上的大多数API,它们都会发送一个字符串,您必须将其解析为JSON或某些语言代码。我建议查看解析 JSON 字符串链接。它解释了如何获取格式良好的字符串并将其解析为 JSON 可读对象。

var obj = jQuery.parseJSON( '{ "name": "John" }' );
alert( obj.name === "John" );

如果你继续继续并开始使用PHP,看看使用PHP解析JSON字符串

编辑:

使用 .done(( 方法在 AJAX 调用后从其他页面获取文本。

$.ajax(...).done(function(html){
    //do what you want with the html from the other page
    var object = $.parseJSON(html)
}