繁体   English   中英

如何使用 node.js 从客户端的服务器获取 JSON?

[英]How to obtain JSON from server on client side using node.js?

我已经在这工作了几个小时,不得不问另一组敏锐的眼睛。 提前致谢。

基本上,当我转到我的 URL(例如 55.55.55.55/select)时,它会发送 JSON 数据以供从数据库查看。

现在在客户端,我尝试访问数据但由于某种原因无法访问。 ****顺便说一句,我确实单击以触发 eventListener。 我尝试了很多不同的事情,例如更改代码和研究,但仍然无法解决这个问题。

 document.getElementById('clicks').addEventListener('click', function(event){
var req = new XMLHttpRequest();

var reqString = url + "/select";

req.open('GET', reqString, true);


req.addEventListener('load',function() {
if (req.status >= 200 && req.status < 400) {

    var response = req.responseText; // used to be var response = 

    // JSON.parse(req.responseText);
    document.getElementById('status').textContent = req.responseText;

    //console.log(response);
    //alert(response.name[0]);
    selectOption(response);
    //document.getElementById('status')..responsetext = req.responseText;

}else {
        // If a server error was received, post the response text to the   log
        console.log("Error in network request: " + req.statusText);
   }
   });

   req.send();

 //event.preventDefault();
 }); 


//html
<form id="clicks">
    <fieldset>
        <legend>Data</legend>
        <p>
            <input type="submit" class="buttons" id="submitBtn" name="submitBtn">
        </p>
    </fieldset>
   </form>

<p id="status"></p>
<div>
    <select id="selectNumber">
        <option>Choose a Hotel</option>
    </select>
</div>
<script src="/script.js">

</script>

编辑:(不是问题):hotelScript.js:43 XMLHttpRequest 无法加载 %55.55.55.55/select。 跨源请求仅支持以下协议方案:http、data、chrome、chrome-extension、https、chrome-extension-resource。

我认为您可以使用以下方法将结果解析为 json: var obj = JSON.parse( queryObj.jsonData );

问题是相同域源策略(限制)。 您服务器的 URL 地址应与浏览器 URL 的 PORT、HOST 和协议完全匹配。

如果 node.js 在与 Web 应用程序不同的端口(甚至主机)上运行,则必须在 Web 服务器上创建反向代理。

你的url变量到底是什么样的? 它似乎错过了http://前缀。 确保它在网址中...

req.setRequestHeader("Content-Type", "application/json");
req.end(JSON.stringify(payload));

加载后需要这些

首先尝试在导航器中访问 URL 并查看是否获取 de JSON。

无论如何,我认为您必须更改send end

res.end(tableInfo);

end函数关闭连接。 然后导航器知道传输已结束并且所有数据都已传输

也变

req.addEventListener('load',function() {

经过

req.addEventListener('onreadystatechange',function() {

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM