我试图在 Firefox JSON 查看器中查看对我的 url 的响应,但它始终显示为纯文本。我将选项
devtools.jsonview.enabled
设置为 true
。我发送带有标头 Accept: application/json
的请求,并获得带有“正确”content-type: application/json
的响应。不幸的是,它不适用于我的网址。
但是,Firefox JSON 查看器与另一个 url 配合得很好。这有什么问题吗?
按照您的示例链接进行一些调查后,正如您所说,json 是有效且格式良好的。
但是服务器没有正确发送
application/json
标头。
如果您无法修改服务器,您仍然可以使用来自另一台服务器的正确标头来代理它,如下所示:
php 中的示例:
<?php
header('Content-Type: application/json');
$data = file_get_contents("https://auction-sandbox.ea.openprocurement.org/database/11111111111111111111111111110149");
echo $data;
输出:
我也有这个问题,并且无权更改服务器。
如果您像我一样只是想查看 JSON,请尝试 Postman 或其他浏览器。我的结果如下。
Firefox 开发者版本:JSON 值作为字符串。
Chrome 和 Edge:XML。
IE:下载 JSON
您可以使用此用户脚本:
// ==UserScript==
// @name Force JSON Viewer for Specific URLs
// @namespace whatever
// @version 1.0
// @description Force JSON rendering for specific URLs in Firefox
// @author YourName
// @match https://auction-sandbox.ea.openprocurement.org/database/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Get the current URL
const url = window.location.href;
// Fetch the content, force JSON rendering
fetch(url)
.then(response => response.json())
.then(json => {
const jsonString = JSON.stringify(json, null, 2);
const blob = new Blob([jsonString], { type: 'application/json' });
const objectURL = URL.createObjectURL(blob);
window.location.href = objectURL;
})
.catch(error => console.error('Error fetching or parsing JSON:', error));
})();
恕我直言,这是永久的解决方案。