将经典的asp转换为javascript:如何使用javascript编写或使返回的字符串(json+ld)在网页头部可



我在网页的标题部分有这个经典的Asp代码:

<%
dim url, param, avgrate, votes, p, s
url = "https://au2mailer.com/api/a2m-getschemaorg.asp"
param = "?apikey=fe9fc289c3ff0af142b6d3bead98a923"
Set HttpReq = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
HttpReq.SetOption(2) = 8192
HttpReq.open "GET", url & param, false
HttpReq.setRequestHeader "Content-Type", "application/json"
HttpReq.Send()
if (HttpReq.status = 200) Then
response.write(HttpReq.responseText)
end if
%>

并被Google Schema Markup Validator接受。要检查的页面https://carmagic.dk/online-bil-forretning-hvordan.asp(丹麦网站(我需要更改代码,以便无论页面是html、asp、aspx还是php都能正常工作,我的想法是将其更改为javascript。我在的标题部分尝试过这个javascript

<script>
var request = new XMLHttpRequest();
request.open('GET', 'https://au2mailer.com/api/a2m-getschemaorg.asp?apikey=fe9fc289c3ff0af142b6d3bead98a923');
request.send();
request.onload = ()=>{
var receivedDom = new DOMParser().parseFromString(request.response, "text/html");
var jsonstr = receivedDom.body.innerText;
document.write(jsonstr);
}
</script>

代码执行,但它不能像经典的asp代码那样工作!我的经典asp代码在javascript中是不可能的吗?

<p id="a2mjson"></p>
<script>
var request = new XMLHttpRequest();
request.open('GET', 'https://au2mailer.com/api/a2m-getschemaorg.asp?apikey=fe9fc289c3ff0af142b6d3bead98a923');
request.send();
request.onload = ()=>{
document.getElementById("a2mjson").innerHTML = request.response;
}
</script>

使用p标记是有效的,并使脚本可被模式验证工具读取,但真的有必要使用p标记吗??看起来很业余??

您没有输出JSON的响应头,javascript假设它是一个字符串。你有两个选择:

  1. 将其保留为字符串并使用JSON.parse((,类似于以下内容:

    var request = new XMLHttpRequest();
    request.open('GET', 'https://au2mailer.com/api/a2m-getschemaorg.asp?apikey=fe9fc289c3ff0af142b6d3bead98a923');
    request.send();
    request.onload = ()=>{
    let res = JSON.parse(request.response);
    document.getElementById("a2mjson").innerHTML = res;
    }
    
  2. 更改ASP中的响应标头(推荐(:请在此处查看此答案:如何在经典ASP 中返回JSON对象

最新更新