Home  >  Article  >  Java  >  Solve the cross-domain problem when debugging vue+Java backend

Solve the cross-domain problem when debugging vue+Java backend

黄舟
黄舟Original
2017-10-20 09:36:022862browse

Today I encountered a small problem during development. How to solve the cross-domain problem when debugging the vue+Java backend. The editor below will share the solution with you. Friends who are interested can take a look.

Today I encountered a problem during the development process and got a set of vue code. I plan to adjust some styles of this code. The Java back-end code has been written and deployed online. At this time, when running the vue project on the command line, access will be restricted, data cannot be retrieved, and cross-domain access fails. What can be done at this time?

First of all, we need to understand what cross-domain access is?

Cross-domain means that the browser cannot execute scripts from other websites. It is caused by the browser's same-origin policy, which is a security restriction imposed by the browser on JavaScript.

The so-called same origin means that the domain name, protocol and port are the same. For example:

http://www.123.com/index.html call http://www.123.com/server.php (non-cross-domain)

http://www.123.com/index.html calls http://www.456.com /server.php (different primary domain names: 123/456, cross-domain)

http://abc.123.com/index.html Call http://def.123.com/server .php (different subdomain names: abc/def, cross-domain)

http://www.123.com:8080/index.html Call http://www.123.com:8081 /server.php (different ports: 8080/8081, cross-domain)

http://www.123.com/index.html Call https://www.123.com/server. php (different protocols: http/https, cross-domain)

Please note: Although localhost and 127.0.0.1 both point to this machine, they are also cross-domain.

After knowing the concept of cross-domain, how do we solve it?

My situation here is like this. The backend is on the server, but vue runs locally. There are many cross-domain proxy tools on the Internet, but they are all troublesome. Because the vue-cli scaffolding tool has already taken care of it for us, we can easily solve cross-domain problems with just a little configuration.

We open the config/index.js file and find the following code:


Configure proxy in proxyTable: {}, configuration information As follows:


proxyTable: { 
 '/project_dzff/': { 
 target: 'http://120.92.45.71/', //域名 
 secure: false, 
 changeOrigin: false, 
 } 
 },

After the agent is configured, modify the project’s calling interface address information so that it can call what we configured.


serverRoot: env === 'development' ? '/project_dzff' : 
env === 'production' ? '/project_dzff' : 
'https://debug.url.com'

The original access to http://120.92.45.71/ has been adjusted to access project_deff, which is the name we defined ourselves.

At this time we run the vue project, as shown in the figure:

At this time, basically the access has been successfully proxied to the local, and then you can Use the local vue project to access server-side data!

Summarize

The above is the detailed content of Solve the cross-domain problem when debugging vue+Java backend. 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