這次帶給大家nodejs搭建本地伺服器並處理跨域,nodejs搭建本地伺服器並處理跨域的注意事項有哪些,下面就是實戰案例,一起來看一下。
最近把以前用jquery寫的一個小demo拿出來運行的,剛開始的時候忘了開啟本地服務導致控制台一直報XMLHttpRequest cannot load file:///C :/Users/79883/Desktop/ajax/data.json?{"username":"lcl@qq.com","pwd":"Home20170702"}. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.然後我就去啟動自己寫的server.js伺服器,在這過程中,感覺這種方式挺麻煩的,就一直去嘗試了其它的方式什麼去改瀏覽器屬性等都試過了但是都沒有解決跨域問題,最終得出兩種有效方式,在這裡我就把這兩種方式一起介紹大家。
一、使用Node 建立Web 伺服器
#註:Node.js 提供了http 模組,http 模組主要用於建立HTTP 服務端和客戶端,以下就是簡單的伺服器實作過程:
1、寫伺服器程式碼server.js
var http = require('http'); var fs = require('fs');//引入文件读取模块 var documentRoot = 'C:/Users/79883/Desktop/jquery/ajax';//需要访问的文件的存放目录 var server= http.createServer(function(req,res){ //客户端输入的url,例如如果输入localhost:8888/index.html //那么这里的url == /index.html var url = req.url; var file = documentRoot + url; console.log(url); fs.readFile( file , function(err,data){ /* 一参为文件路径 二参为回调函数 回调函数的一参为读取错误返回的信息,返回空就没有错误 二参为读取成功返回的文本内容 */ if(err){ //HTTP 状态码 404 : NOT FOUND //Content Type:text/plain res.writeHeader(404,{ 'content-type' : 'text/html;charset="utf-8"' }); res.write('<h1>404错误</h1><p>你要找的页面不存在</p>'); res.end(); }else{ //HTTP 状态码 200 : OK //Content Type:text/plain res.writeHeader(200,{ 'content-type' : 'text/html;charset="utf-8"' }); res.write(data);//将index.html显示在客户端 res.end(); } }); }).listen(8888); console.log('服务器开启成功');
透過上面程式碼,我們就能夠實作伺服器對於文件的查找,下面,我們就進行建立一個html文件,然後透過瀏覽器存取。
2、編寫html檔案(index.html),用於瀏覽器進行請求
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> 这是一个用于进行nodejs服务器测试的html文件,通过在浏览器上面输入 http://127.0.0.1:8888/index.html(自己所建的项目名)进行访问 </body> </html>
#3、進行測試
# (1) 首先我們啟動伺服器,打開cmd,找到項目所在位置,然後輸入命令node server.js啟動伺服器
(2) 在瀏覽器進行訪問,在url欄中輸入http:/ /127.0.0.1:888/index.html
如果對應頁面顯示出來就證明你成功了。接下來我將介紹nodejs快速搭建在地服務,也就是我說的第二種方法。
二、使用nodejs快速建立本地服務
#註:node.js 的anywhere就是隨時隨地將你的目前目錄變成一個靜態檔案伺服器的根目錄
1、先開啟cmd,輸入node -v偵測你確定你是否安裝好了node.js,然後輸入指令npm install angwhere -g,進行安裝靜態檔案伺服器,安裝完如下圖顯示:
2、在cmd頁面找到你想建立伺服器的路徑
3、然後再在目前路徑下輸入: anywhere 8888 如下圖顯示
4、回車後,瀏覽器就會自動開啟本地存取網址,一個簡單的node伺服器就這樣被我們搭建好啦!
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
#以上是nodejs搭建本機伺服器並處理跨域的詳細內容。更多資訊請關注PHP中文網其他相關文章!