2014-01-21 4 views
0

У меня есть этот простой node.js код сервера, который посылает alert: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"); 

Сервер запущен и работает:

enter image description here

и я вижу правильные заголовки для ответа:

enter image description here

Но scr ipt не выполняется!

Кроме того, консоль показывает:

Ресурс интерпретируется как документ, но передаются с MIME-тип приложения /JavaScript: "http://xxxx.com:8080/".

Вопрос:

Что мне не хватает, и как я могу сделать эту работу предупреждение?

+0

Но это возможно? Что не так с обертыванием скрипта в '

3

Для сценария для выполнения в браузере, я бы предпочел использовать Content-Type:html & отправить

<script type="text/javascript">alert('test');</script> 

Это старый трюк, я использовал для «JavaScript потокового» перед Аякса существовала.

Для этой работы, браузер должен знать, что это HTML-документ (или «JavaScript URL вызова» должен быть initialiized из существующего контекста HTML)

Что-то вроде этого:

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

Вы можете передать любой javascript для your_js_node_url, поддерживая «всегда открытое» соединение.

Конечно, это немного «старая школа», но позволяет использовать «кодовый push» без веб-карт.

+0

он не работает - я не вижу предупреждения. (Свойство 'alert' объекта [object Object] не является функцией) –

+0

попробуйте запустить этот http://jsbin.com/ulAnonU/2/edit, и вы увидите –

Смежные вопросы