2012-07-16 201 views
1

我試圖修復一個javascript window -element問題。 我已經做了經典:`window.XMLHttpRequest`未定義

  • npm install jQuery
  • npm update

然後,在 'server.js' 的文件,在1號線

var $ = require('jQuery'); 

在我的Ubuntu驗證碼運行良好,沒有問題,應用程序繼續前進。在Windows 7上有一個我無法戰鬥的怪物。在我的CMD(具有管理員權限)
寫作node server.js,我看到這條消息:

enter image description here

我簡直不敢採取這樣做的原因:window.XMLHttpRequest is undefined。我是一個好奇的人,所以我發現window.XMLHttpRequest是在哪裏初始化的,以及誰/爲什麼適用於此:

http://github.com/coolaj86/node-jquery/blob/master/lib/node-jquery.js的第8行。

window.XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; 

爲什麼不做它的工作?
https://github.com/driverdan/node-XMLHttpRequest/blob/master/lib/XMLHttpRequest.js這裏是xmlhttprequest代碼。

+0

歡迎SO-社會!請看我的編輯進一步的問題,格式和東西。隨時提高你自己的問題,但嘗試堅持我們的格式選項 - 謝謝! – 2012-07-16 13:09:23

+0

@Andreas Niedermair謝謝你! – Francesco 2012-07-16 13:10:47

+0

您是否正確安裝模塊? (順便說一句,你的'XMLHttpRequest'的polyfill不是基於原型的) – 2012-07-16 13:13:02

回答

1

解決方案:
- 安裝python從2.5.0到3.0.0版本(免費)
- 安裝Visual Express 2010或更高版本(免費)

0

您需要安裝的XMLHttpRequest模塊NPM:

npm install xmlhttprequest 

,但通常情況下,它是一個瀏覽器的唯一對象,您應該使用在服務器上: http://nodejs.org/docs/latest/api/http.html

+0

我剛剛做到了,但沒有什麼新東西。我知道這是一個瀏覽器對象,但有沒有另一種方法來在NodeJs上使用jQuery而不使用'window'? – Francesco 2012-07-16 13:17:47

0

你需要m每年補丁您的node_module/jquery/lib/node-jquery.js文件!

改變這些線(約4號線和5) 來自:

if(window == null) { 
    window = require('jsdom').jsdom().createWindow(); 
    ... 

到:

if (!window || !window.document) { 
    window = require('jsdom').createWindow(); 
    window.document = require('jsdom').jsdom(); 
    ...