Javascript 通过HTTP响应从节点传递Jquery函数
我正在使用一个基于节点(Express)的API,它根据请求将一些HTML和jQuery传递给前端,前端嵌入到文档中。我正在寻找一种简洁的方法,在后端对函数进行字符串化,以便将其发送到前端。我正在尽量减少我必须放在前端的代码量。这就是我现在拥有的功能,但感觉有点难看,很难调试Javascript 通过HTTP响应从节点传递Jquery函数,javascript,jquery,node.js,express,http-get,Javascript,Jquery,Node.js,Express,Http Get,我正在使用一个基于节点(Express)的API,它根据请求将一些HTML和jQuery传递给前端,前端嵌入到文档中。我正在寻找一种简洁的方法,在后端对函数进行字符串化,以便将其发送到前端。我正在尽量减少我必须放在前端的代码量。这就是我现在拥有的功能,但感觉有点难看,很难调试 responseData.scripts = "<script>"; var search_request = "$('#search_form').submit(function(event)
responseData.scripts = "<script>";
var search_request =
"$('#search_form').submit(function(event) { "+
"event.preventDefault();"+
"data.stage = 'search';"+
"data.query.first_name='Bob';"+
"$.ajax({"+
"type: 'GET',"+
"url: 'http://159.203.131.150:3000',"+
"data:data,"+
"crossDomain: true,"+
"success: function(response) {"+
"response = JSON.parse(response);"+
"console.log(response);"+
"}"+
"})" +
"})" +
"</script>";
responseData.scripts+=search_request;
你喜欢这样吗
$.ajax({
type: "GET",
url: "http://159.203.131.150:3000",
data: data,
crossDomain: true,
success: function(response) {
response = JSON.parse(response);
$(response.html).prependTo("#content");
$(function () {
$('<script>')
.attr('type', 'text/javascript')
.text(response.scripts)
.appendTo('body');
})
}
});
$.ajax({
键入:“获取”,
url:“http://159.203.131.150:3000",
数据:数据,
跨域:是的,
成功:功能(响应){
response=JSON.parse(response);
$(response.html);
$(函数(){
$('')
.attr('type','text/javascript')
.text(response.scripts)
.附于(“主体”);
})
}
});
并从服务器端响应中删除脚本标记我找到了一个Express函数来实现这一点(我不熟悉Express,这是一个非常基本的函数)。我最终将javascript文件存储在一个公共文件夹中,并从我的应用程序中提供服务
谢谢Kuldeep。这不是我想问的。我在客户端没有遇到任何问题,事实上,事情是按照我写的方式进行的。我正在寻找一种更简洁的替代方法,以取代我在服务器端使用的方法,该方法将jQuery字符串化并发送到客户端。有没有理由在客户端采用您推荐的方式与我现有的方式相比?
$.ajax({
type: "GET",
url: "http://159.203.131.150:3000",
data: data,
crossDomain: true,
success: function(response) {
response = JSON.parse(response);
$(response.html).prependTo("#content");
$(function () {
$('<script>')
.attr('type', 'text/javascript')
.text(response.scripts)
.appendTo('body');
})
}
});