Notice: Undefined index: in /data/phpspider/phplib/misc.function.php on line 226

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js无法发送脚本?_Javascript_Node.js - Fatal编程技术网

Javascript Node.js无法发送脚本?

Javascript Node.js无法发送脚本?,javascript,node.js,Javascript,Node.js,我有一个简单的node.js服务器代码,它发送警报: var sys = require("sys"), my_http = require("http"); my_http.createServer(function(request,response){ response.writeHeader(200, {"Content-Type": "application/javascript","Content-Length": "alert('');".length }); re

我有一个简单的node.js服务器代码,它发送
警报

var sys = require("sys"),
my_http = require("http");
my_http.createServer(function(request,response){

    response.writeHeader(200, {"Content-Type": "application/javascript","Content-Length": "alert('');".length });
    response.write("alert('');");
    response.end();
}).listen(8080);
sys.puts("Server Running on 8080"); 
服务器已启动并正在运行:

我确实看到了正确的响应标题:

但是脚本没有执行

此外,控制台显示:

解释为文档但使用MIME类型传输的资源 应用程序/javascript:“”

问题:


我遗漏了什么?我如何才能使此警报正常工作

对于要由浏览器执行的脚本,我宁愿使用
内容类型:html
&send

<script type="text/javascript">alert('test');</script>
警报(“测试”);
这是我在ajax出现之前用于“javascript流”的老把戏

要使其工作,浏览器必须知道它是一个HTML文档(或者“javascript url调用”必须从现有HTML上下文初始化)

大概是这样的:

<!DOCTYPE html>
<html>
<body>
<iframe src="your_js_node_url_here">
</body>
</html>

您可以为您的_js_node_url流式传输任何javascript,保持“始终打开”的连接


当然,这有点“老派”,但可以在没有WebSocket的情况下实现某种“代码推送”。

对于通过浏览器执行的脚本,我宁愿使用
内容类型:html
&send

<script type="text/javascript">alert('test');</script>
警报(“测试”);
这是我在ajax出现之前用于“javascript流”的老把戏

要使其工作,浏览器必须知道它是一个HTML文档(或者“javascript url调用”必须从现有HTML上下文初始化)

大概是这样的:

<!DOCTYPE html>
<html>
<body>
<iframe src="your_js_node_url_here">
</body>
</html>

您可以为您的_js_node_url流式传输任何javascript,保持“始终打开”的连接

当然,这有点“老派”,但可以在没有WebSocket的情况下实现某种“代码推送”。

要让浏览器执行JavaScript,必须有东西告诉它这是可执行代码(而不是要格式化和显示的文本)

您可以在HTML文档中发送JavaScript,并为此使用
SCRIPT
标记,如下例所示:

var sys = require("sys"),
my_http = require("http");
my_http.createServer(function(request,response){

    response.writeHeader(200, {"Content-Type": "text/html", });
    response.write("<html><body><script>alert('hello');</script></body>");
    response.end();
}).listen(8080);
sys.puts("Server Running on 8080"); 
var sys=require(“sys”),
my_http=require(“http”);
my_http.createServer(函数(请求、响应){
writeHeader(200,{“内容类型”:“text/html”,});
回复。写(“警报('hello');”);
response.end();
}).听(8080);
sys.puts(“在8080上运行的服务器”);
另一种方法是通过浏览器上已有的另一个JavaScript程序(a-la AJAX)获取JavaScript,并让另一个程序执行它

要让浏览器执行JavaScript,必须有东西告诉它这是可执行代码(而不是要格式化和显示的文本)

您可以在HTML文档中发送JavaScript,并为此使用
SCRIPT
标记,如下例所示:

var sys = require("sys"),
my_http = require("http");
my_http.createServer(function(request,response){

    response.writeHeader(200, {"Content-Type": "text/html", });
    response.write("<html><body><script>alert('hello');</script></body>");
    response.end();
}).listen(8080);
sys.puts("Server Running on 8080"); 
var sys=require(“sys”),
my_http=require(“http”);
my_http.createServer(函数(请求、响应){
writeHeader(200,{“内容类型”:“text/html”,});
回复。写(“警报('hello');”);
response.end();
}).听(8080);
sys.puts(“在8080上运行的服务器”);

另一种方法是通过浏览器上已有的另一个JavaScript程序(a-la AJAX)获取JavaScript,并让另一个程序执行它

但这有可能吗?在
元素中包装脚本有什么问题?
sys
?你在运行什么古老版本的Node?@Joe这真的很重要吗?我使用expressJs,但对于simplcity,我使用了那个例子。好吧,考虑到自sys被弃用以来的3.5年中,节点发生了多大变化,我认为这是相关的,即使它在最近的一些事情中仍然是相同的行为。但这是可能的吗?在
元素中包装脚本有什么问题?
sys
?你在运行什么古老版本的Node?@Joe这真的很重要吗?我使用expressJs,但对于simplcity,我使用了这个例子。好吧,考虑到自sys被弃用以来的3.5年中,节点发生了多大的变化,我认为这是相关的,即使它在最近的事件中仍然是相同的行为。它不起作用-我没有看到警报。(对象[object object]的属性'alert'不是函数)它不工作-我看不到警报。(对象[object]的属性“alert”不是函数)