为什么 Firefox 原生 JSON 查看器不能满足我的请求?

问题描述 投票:0回答:3

我试图在 Firefox JSON 查看器中查看对我的 url 的响应,但它始终显示为纯文本。我将选项

devtools.jsonview.enabled
设置为
true
。我发送带有标头
Accept: application/json
的请求,并获得带有“正确”
content-type:  application/json
的响应。不幸的是,它不适用于我的网址。

但是,Firefox JSON 查看器与另一个 url 配合得很好。这有什么问题吗?

json firefox-addon
3个回答
3
投票

按照您的示例链接进行一些调查后,正如您所说,json 是有效且格式良好的。

但是服务器没有正确发送

application/json
标头。

如果您无法修改服务器,您仍然可以使用来自另一台服务器的正确标头来代理它,如下所示:

php 中的示例:

<?php

header('Content-Type: application/json');
$data = file_get_contents("https://auction-sandbox.ea.openprocurement.org/database/11111111111111111111111111110149");
echo $data;

输出:

enter image description here


0
投票

我也有这个问题,并且无权更改服务器。

如果您像我一样只是想查看 JSON,请尝试 Postman 或其他浏览器。我的结果如下。

Firefox 开发者版本:JSON 值作为字符串。

Chrome 和 Edge:XML。

IE:下载 JSON


0
投票

您可以使用此用户脚本:

// ==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));
})();

恕我直言,这是永久的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.