Home >Web Front-end >JS Tutorial >How to configure Google Chrome to support AJAX requests of the file protocol

How to configure Google Chrome to support AJAX requests of the file protocol

php中世界最好的语言
php中世界最好的语言Original
2018-03-31 15:24:062625browse

This time I will show you how to configure Google Chrome to support AJAX requests of the file protocol. What are the precautions for configuring Google Chrome to support AJAX requests of the file protocol? The following is a practical case. Let’s take a look. one time.

What's the problem

In the WEB development process, many times we write some simple demos instead of developing a complete project. At this time, our common operations are :

•Create a new folder

•Create the required files
•Complete the DEMO coding in Sublime (or other
editor) •Double-click the HTML file, Run the demo directly in the browser

If there is an AJAX operation in the Demo at this time, the browser will report an error:

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.

The reason is very simple, the security policy of the browser (Webkit kernel) Applications that determine file protocol access cannot use the XMLHttpRequest object. The error message also clearly states:

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

Cross-domain requests only support protocols: http, data, chrome, chrome-extension, https, chrome-extension-resource

In a certain This operation is allowed in some browsers, such as Firefox browser, which means that Filefox supports AJAX requests under the file protocol.

Solution

As my personal favorite Chrome, it is powerful, there is nothing to say, except that it is unexpected, and almost impossible, so it must be supported:

Windows:

•Set Chrome’s shortcut properties and add –allow-file-access-from-files after “target” , notice there is a space in front of it, just reopen Chrome.

Mac:

•The browser can only be opened through the terminal: Open the terminal and enter the following command: open -a “Google Chrome” – args –disable-web-security and then you can block secure access [-args: This parameter is optional]

Supplementary instructions

In the long run, you You definitely need to access your application through HTTP, then you need to configure HTTP server software. However, for some students who are just getting started, setting up an HTTP server (such as Apache, IIS, etc.) is cumbersome and prohibitive.

•There is nothing to say to students who use IDEs. Every IDE used for web development has a built-in http server, so there is no need to configure it separately.

•For students who like lightweight editors, such as Sublime Text, it does not have a built-in HTTP server by default

Next, we recommend a Sublime plug-in, Sublime Server, which can provide a static file HTTP server, the specific usage is as follows:

•Install Package Control (Sublime's plug-in management tool), which will not install Google

•Command+Shift+P or Ctrl+Shift+P to open the command panel, Enter Package Control: Install Package
•Wait for a moment (it will connect to the plug-in provider's server at this time, which is relatively slow and may be behind the wall), search for SublimeServer
•After the installation is completed, go to Tool → SublimeServer → Start SublimeServer
•Be sure to use Sublime by opening a folder, otherwise you will not be able to use SublimeServer normally.
•Open the HTML file and select View in SublimeServer in the right-click menu. At this time, you can access the file in the browser through HTTP.
•If this option is gray, it means that SublimeServer is not started. , Tool → SublimeServer → Start SublimeServer

So far, you can already use the HTTP server in Sublime.

Possible problems

If Start SublimeServer cannot be clicked, the current port 8080 may be occupied (SublimeServer uses port 8080 by default)

The solutionis to open the configuration fileChange the port Modify to other ports:

The following is my configuration:

{
  "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 // 端口号
}

Of course other editors have similar plug-ins.

I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!

Recommended reading:

How does ajax pass an array to the background

How to implement AJAX paging effect

The above is the detailed content of How to configure Google Chrome to support AJAX requests of the file protocol. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn