1. 程式人生 > >配置Chrome支援本地(file協議)的AJAX請求

配置Chrome支援本地(file協議)的AJAX請求

什麼問題

WEB開發過程中,很多時候我們都是寫一些簡單的Demo,並不是開發一個完整專案,此時我們常見的操作是:

  • 新建資料夾
  • 新建需要的檔案
  • 在Sublime(或其他編輯器)中完成DEMO的編碼
  • 雙擊HTML檔案,直接在瀏覽器中執行演示

如果此時Demo中有AJAX操作,瀏覽器就會報一個錯:

XMLHttpRequest cannot load file:///Users/iceStone/Documents/Learning/angular/demo/angular-moviecat/movie/view.html. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

原因很簡單,瀏覽器(Webkit核心)的安全策略決定了file協議訪問的應用無法使用XMLHttpRequest物件,錯誤訊息中也很清楚的說明了:

Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

跨域請求僅支援協議:http, data, chrome, chrome-extension, https, chrome-extension-resource

在某些瀏覽器中是允許這種操作的,比如Firefox瀏覽器,也就是說Filefox支援file協議下的AJAX請求。

解決辦法

作為我個人最喜歡的Chrome,強大,沒什麼好說的,只有想不到,幾乎沒有做不到,所以必須也得支援:

  • Windows:
    • 設定Chrome的快捷方式屬性,在“目標”後面加上--allow-file-access-from-files,注意前面有個空格,重新開啟Chrome即可。
  • Mac:
    • 只能通過終端開啟瀏覽器:開啟終端,輸入下面命令:open -a "Google Chrome" --args --disable-web-security然後就可以遮蔽安全訪問了[ --args:此引數可有可無]

補充說明

長久來看,你肯定是需要通過HTTP的方式訪問你的應用,那就需要配置HTTP伺服器軟體。但是對於一些剛入門的同學,配一個HTTP伺服器(比如Apache、IIS等)比較繁瑣,望而卻步。

  • 對於使用IDE的同學沒什麼好說的,每個用於Web開發的IDE都內建http伺服器,不用單獨配置。
  • 對於喜歡輕量級編輯器的同學,比如Sublime Text,它預設是沒有內建HTTP伺服器的

接下來推薦一款Sublime的外掛Sublime Server,這個外掛可以提供一個靜態檔案HTTP伺服器,具體使用方式如下:

  • 安裝Package Control(Sublime的外掛管理工具),不會安裝自行Google
  • Command+Shift+PCtrl+Shift+P開啟命令面板,輸入Package Control: Install Package

    Install Package

  • 稍等片刻(此時會連線到外掛提供商的伺服器,比較慢,有可能背牆),搜尋SublimeServer

    SublimeServer

  • 安裝完成過後通過Tool → SublimeServer → Start SublimeServer

    Start SublimeServer

  • 一定要用開啟資料夾的方式使用Sublime,否則沒有辦法正常使用SublimeServer。

    開啟資料夾的方式使用Sublime

  • 開啟HTML檔案,在右鍵選單中選擇View in SublimeServer,此時就可以以HTTP方式在瀏覽器中訪問該檔案了,
  • 如果該選項是灰色的,那就說明沒有啟動SublimeServer,Tool → SublimeServer → Start SublimeServer

到此為止,你已經可以在Sublime中使用HTTP伺服器了。

可能遇到的問題

如果Start SublimeServer不能點,可能是當前8080埠被佔用了(SublimeServer預設使用8080埠)

解決方法就是開啟配置檔案將埠修改為其他埠:

開啟SublimeServer設定檔案

以下是我的配置:

{
    "attempts": 5,
    "autorun": false, // 是否在啟動Sublime時自動啟動SublimeServer
    "defaultExtension": ".html",
    "interval": 500,
    "mimetypes":
    {
        "": "application/octet-stream",
        ".c": "text/plain",
        ".h": "text/plain",
        ".py": "text/plain"
    },
    "port": 2016 // 埠號
}

當然其他編輯器也有類似的外掛。

原文連結

相關推薦

配置Chrome支援本地file協議AJAX請求

什麼問題 WEB開發過程中,很多時候我們都是寫一些簡單的Demo,並不是開發一個完整專案,此時我們常見的操作是: 新建資料夾 新建需要的檔案 在Sublime(或其他編輯器)中完成DEMO的編碼 雙擊HTML檔案,直接在瀏覽器中執行演示 如果此時Demo中有AJAX操作,瀏覽器就會報一個錯: XMLHt

本地配置DNS服務器MAC版

希望 設備 gin host bin 方式 regexp update 服務 作為一個前端開發者,會遇到使用cookie的情況,常見的如:登錄,權限控制,視頻播放,圖形驗證碼等,這時候本地開發者在PC上會使用修改hosts的方式添加指向本地的域名,來獲取cookie的同域名

Net-SNMPV3協議安裝配置筆記

認證:檢驗資訊來自正確的來源。 封包加密:避免被未授權的來源窺探。 SNMPv1,v2使用基於團體名進行報文認證 SNMPv3中引入了下列三個安全級別。 noAuthNoPriv:不需要認證,不提供隱私性(加密)。 authNoPriv:基於HMAC-MD5或HMAC-SHA的認證,不提供加密。 au

如何讓 Windows,Ubuntu(Linux)下的 Chrome 支援 WebGL ?親測有效

tensorflow.js needs WebGL.But my chrome does not support WebGL. I have only  virtualbox in which chrome runs.My god,I have no money to buy

samba文件共享服務配置(multiuser機制)二 共兩節

掛載點 機制 tool 用戶 vim ins 掛載 samba install smb客戶端的multiuser掛載技術 --管理員只需要作一次掛載 --客戶端在訪問掛載點時,若需要不同權限,可臨時切換新的共享用戶【無需重新掛載】 實現方式 --掛載smb共享時啟用mul

【前端小小白的學習之路】整理幾道面試題之HTTP協議【轉】

ase 賬號 檢測 提交數據 大型數據集 tor 添加 描述 分享 轉自:http://www.cnblogs.com/ranyonsue/p/5984001.html HTTP簡介 HTTP協議是Hyper Text Transfer Protocol(超文本傳輸

php短信接口開發http協議

php短信接口 http協議短信接口 php短信接口開發 本文由動力思維樂信原創文章,技術楊工提供,歡迎交流合作,動力思維樂信短信接口官網:http://www.lx598.com/ 。 一、接口說明 1、提交方式與編碼 ht

Eclipse中如何進行新文件類型File types的關聯識別?

但是 .com 保存 繼續 height file src images pes 這段時間,由於項目需要,采用.btl文件類型代替.jsp文件類型進行前後端的頁面交互,但是eclipse又不能識別.btl文件類型。所以需要進行如下操作: 1.Window ->Pre

Java學習筆記36File

是不是 pat 硬盤 directory return reat gpo ole cls File類可以對操作系統中的文件進行操作: File類的靜態成員變量: package demo; import java.io.File; public class FileD

文件操作File

統計 println get 調用 clas 直接 delete director let 1、java.io.File File 類只用於表示文件(目錄)的信息(名稱、大小等),不能對文件的內容進行訪問。 下面舉一些 File類 的例子: 遞歸刪除

IDEA如何創建及配置Web項目多圖

過程 cat image 添加 nts content use class文件 truct 正文之前 在學習Java Web時,第一個遇到的問題就是如何創建或配置Web項目了,今天,就用IntelliJ IDEA 來進行Web項目配置: 創建Web項目 配置web項目

vue 學1(cp) Eslint 配置及規則說明報錯

ews 作者 block bug 定義 ber bsp ips fec https://blog.csdn.net/violetjack0808/article/details/72620859 https://blog.csdn.net/hsl0530hsl/articl

根據圖片的URL生成PDF保存到本地前臺js

避免 就會 需要 uri con bug 是個 tput llb //需要引用html2canvas.js和jspdf.js SavePDF:function(e){ var that = this; $.post("/Biz/D

爬取博主所有文章並保存到本地.txt版--python3.6

選中 搜索 temp getc 變量 文件中 計數 學習 mat 閑話: 一位前輩告訴我大學期間要好好維護自己的博客,在博客園發布很好,但是自己最好也保留一個備份。 正好最近在學習python,剛剛從py2轉到py3,還有點不是很習慣,正想著多練習,於是萌生了這個想法——用

文件系統File System

當前目錄 表格 只需要 基本操作 nbsp 文件管理系統 pan 存儲文件 內容 什麽是文件系統,引用百科解釋:   操作系統中負責管理和存儲文件信息的軟件機構稱為文件管理系統,簡稱文件系統。 文件系統是操作系統核心的組成部分,沒有它我們無法完成對文件的增、刪、改、查等基本

利用Python實現的一個自動群發或單發郵件的小腳本!SMTP協議

成功 負責 mail 發現 腳本 服務器 編碼 SM 比較 python3、利用SMTP實現自動發送郵件!   首先聲明,這個是偶然從別人的博客裏發現的,覺得比較有趣,就自身親自嘗試了一番,在此做了點兒比較詳細的整理和一點點小小的優化!此處為原博客的鏈接地址!   http

Tomcat學習—Tomcat的簡介和目錄以及配置文件介紹Windows環境

系統 並發 manager htm 輕量級 管理 集群 web.xml 虛擬目錄 今天學習TOMCAT,主要學習的是Tomcat的目錄結構,配置文件!1:Tomcat簡介Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬於輕量級應用服務器,在中小型系統和並發

應用層http協議 http與https區別

在協議分層的TCP/IP(或四層)通訊協議採用了5層的層級結構,5層分別包括:應用層、傳輸層、網路層、資料鏈路層、物理層。5層一些簡單功能和著名協議可參考這篇部落格:https://blog.csdn.net/sophia__yu/article/details/82717115 一.應用層

CentOS7 yum安裝配置 drbd-84-utils 外部模式

1 安裝環境介紹 1.1 系統環境   核心:3.10.0-862.el7.x86_64    版本:CentOS Linux release 7.5.1804 (Core)  主伺服器:hostname = mysql-master-01  心跳通訊 IP = 172.16.1.50

讀Muduo原始碼筆記---5NTP協議

1、概念 NTP是網路時間協議(Network Time Protocol),它是用來同步網路中各個計算機的時間的協議。 2、原理    客戶機首先向伺服器傳送一個NTP 包,其中包含了該包離開客戶機的時間戳T1,當伺服器接收到該包時,依次填入包到達的時間戳T2、包離