gpt4 book ai didi

javascript - 服务器向客户端发送数据

转载 作者:太空宇宙 更新时间:2023-11-04 02:30:12 24 4
gpt4 key购买 nike

在我的 Express 项目中,我希望服务器将 JSON 对象发送到客户端。客户端使用脚本来显示它收到的数据,所以我不希望从服务器发送的数据直接在屏幕上看到,我希望它首先通过 JavaScript。我尝试了很多方法来发送任何数据,但没有成功:

客户:

$.get('http://localhost:1337/', {mydata: 'content'}, function(response){
console.log(response);
});

$.ajax({
url: 'http://localhost:1337/',
data: {
mydata: "content"
},
dataType: 'json',
success: function (json) {
console.log(json);
},
error: function (jqXHR, error, errorThrown) {
console.log(error);
},
type: 'GET'
});

服务器:

app.get('/', function (req, res) {
res.render('main',{data:'text'})
});

app.get('/', function (req, res) {
res.render('main','text2')
});

有没有一种方法可以将数据发送到客户端,该数据将首先发送到发送页面中的 JavaScript?谢谢!

最佳答案

在您的服务器上,使用 res.json({data:'text'}); 而不是 res.render(...) 发送 json。这应该可以解决问题。

更新:

如果您想构建具有多个 ajax 请求的单页面应用程序,您应该为这些请求使用不同的路由。一个将发送页面,另一个发送数据。

但是,如果您的应用程序小而简单,您可以继续执行您所做的操作,但通过 javascript 变量而不是 ajax 请求获取数据。为此,在您的模板中,您必须执行类似的操作(假设它是 Jade ):

script(type='text/javascript')                                                   
var local_data =!{JSON.stringify(data)};

该页面将使用以下 HTML 呈现:

<script type="text/javascript"> 
var local_data = {"data":"text"};
</script>

您可以在脚本中执行以下操作:

//Your javascript 

function displayPage(data){
//display logic here
console.log(data);
}

displayPage(local_data);

关于javascript - 服务器向客户端发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27427358/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com