【问题标题】:How to get a JSON from an URL如何从 URL 获取 JSON
【发布时间】:2019-11-02 21:59:51
【问题描述】:

我有这个代码:

function getJSON(url) {
    var resp ;
    var xmlHttp ;

    resp  = '' ;
    xmlHttp = new XMLHttpRequest();

    if(xmlHttp != null)
    {
        xmlHttp.open( "GET", url, false );
        xmlHttp.send( null );
        resp = xmlHttp.responseText;
    }

    return resp ;
}

var data ;
data = getJSON('https://gpsfront.aliexpress.com/getRecommendingResults.do?offset=1&postback=8fa025df-0612-4a7f-9901-5820a67473e1&widgetId=7237617') ;

alert(data);
alert("");

当我使用URL like this 获取 JSON 时,一切正常,并且 JSON 显示在警报中。但是,当URL is this 时,则脚本不起作用。 JSON 是异步代码给出的,它是有效的,那可能是什么原因呢?

我还有一个问题。如何使用纯 JavaScript 抓取页面的 HTML 并将其放入变量中?

【问题讨论】:

  • 由于您认为软件无法有效获取它,您可以尝试使用笔和纸或手动输入,它应该可以工作。

标签: javascript json ajax xmlhttprequest


【解决方案1】:

首先,您应该考虑使用fetch interfaceasync/await keywords

你可以这样写。至于您的链接,我遇到了CORS 问题。您确定您使用的是正确的 API?

const getJson = async(p_url)=>{
    const params = {
        method: "GET",
        headers: {
            Accept: "application/json",
            "Content-Type": "application/json"
        }
    };
    const req = await fetch(
        p_url,
        params
    );
    if(req.ok){
        const rep =await req.json();
        return rep;
    }
}

要获取页面的整个 HTML,您只需使用 DOM

const page = document.documentElement.innerHTML;
console.log(page);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 2014-03-13
    • 1970-01-01
    • 2022-12-22
    • 1970-01-01
    相关资源
    最近更新 更多