Home  >  Article  >  Web Front-end  >  Configure Chrome to support local (file protocol) AJAX requests (graphic tutorial)

Configure Chrome to support local (file protocol) AJAX requests (graphic tutorial)

亚连
亚连Original
2018-05-22 11:30:482556browse

This article mainly introduces in detail how to configure Chrome to support local (file protocol) AJAX requests. It has certain reference value. Interested friends can refer to

What are the issues?

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

•Create a new folder
•Create the required files
•Complete the DEMO coding in Sublime (or other editor)
•Double-click the HTML file to 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) determines that applications accessed by the file protocol 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 origin requests Only supports protocols: http, data, chrome, chrome-extension, https, chrome-extension-resource

This operation is allowed in some browsers, such as Firefox browser, that is It is said 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 I can’t think of it, and there is almost nothing I can’t do, so Must and must be supported:

Windows:

•Set Chrome’s shortcut properties and add –allow-file after “target” -access-from-files, note 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 will definitely need to access your application through HTTP, so 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, I 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 its own 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, which is relatively slow and may be behind the wall), search for SublimeServer
•After the installation is completed, use 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 solution is to open the configuration file and change the port to another port:

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 also have similar plug-ins.

The above is what I compiled for everyone. I hope it will be helpful to everyone in the future.

Related articles:

Simple implementation of AJAX paging effect (graphic tutorial)

When using frameworks such as Ajax or Easyui Json-lib processing solution (graphic tutorial)

Ajax realizes infinite loading of lists and secondary drop-down option effects

The above is the detailed content of Configure Chrome to support local (file protocol) AJAX requests (graphic tutorial). 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