Problèmes inter-domaines
Aucun en-tête "Accès-Contrôle-Autoriser-Origine" n'est présent sur la ressource demandée. L'accès à l'origine "nul" n'est donc pas autorisé. L'
accès entre domaines enfreint la politique de même origine!
Même origine: même nom de domaine, protocole et port.
Politique de même origine: Ajax du navigateur ne peut accéder qu'aux ressources avec le même nom de domaine ou IP que sa page html.
La politique de même origine est le comportement du navigateur pour protéger les données locales contre la pollution par les données extraites par le code JavaScript. Par conséquent, il intercepte les données reçues de la demande envoyée par le client, c'est-à-dire que la demande est envoyée et le serveur répond, mais cela ne peut pas être Le navigateur reçoit.
Première solution:
public static void main(String[] args) {
SpringApplication.run(DemoUaaApplication.class, args);
}
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
final CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true); // 允许cookies跨域
config.addAllowedOrigin("*");// 允许向该服务器提交请求的URI,*表示全部允许,在SpringMVC中,如果设成*,会自动转成当前请求头中的Origin
config.addAllowedHeader("*");// 允许访问的头信息,*表示全部
config.setMaxAge(18000L);// 预检请求的缓存时间(秒),即在这个时间段里,对于相同的跨域请求不会再预检了
config.addAllowedMethod("*");// 允许提交请求的方法,*表示全部允许
config.addAllowedMethod("HEAD");
config.addAllowedMethod("GET");// 允许Get的请求方法
config.addAllowedMethod("PUT");
config.addAllowedMethod("POST");
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}
Solution deux:
Configurer devant la classe: @CrossOgigin (origins = "*", maxAge = 3600)
Solution 3: utiliser le proxy inverse nginx
Mapper l'URL vers la même source
Option 4: utiliser jsonp
JSONP est une méthode courante de communication cross-origin entre le serveur et le client. La plus grande caractéristique est une application simple et une bonne compatibilité (compatible avec les versions inférieures d'
IE). L'inconvénient est qu'il ne prend en charge que les demandes de réception, pas les demandes de publication.
L'idée principale: la page Web demande des données JSON au serveur en ajoutant un élément. Une fois que le serveur a reçu la demande, il renvoie les données
à la position de paramètre d'une fonction de rappel avec un nom spécifié.
L'arrière-plan Axios ne peut pas obtenir les paramètres transmis par le premier plan
axios.post(`http://localhost:8080/brands/insert`, {
name: this.name,
date: new Date()
})
Nous regardons son code source comme ceci
if (utils.isObject(data)) {
setContentTypeIfUnset(headers, 'application/json;charset=utf-8');
return JSON.stringify(data);
}
La raison en est qu'axios fait deux choses lorsque le paramètre est Object
- l'en-tête est défini sur application / json; charset = utf-8
- Les paramètres sont Json.stringify,
vous devez donc négocier avec les partenaires back-end et utiliser la classe d'entité pour recevoir
elasticalsearch5 ne peut pas démarrer
Message d'erreur
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 2060255232 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /tmp/hs_err_pid1.log
Analyse des causes
Ceci est dû au fait qu'elasticsearch5.0 alloue 2g d'espace jvm par défaut et que la mémoire n'est pas suffisante pour l'allocation.
Solution:
Exécutez la commande pour find / -name jvm.options
trouver le fichier de configuration des options de jvm
/var/lib/docker/overlay2/860d339b23854c34f5f1da64d672faf55f8d0d89e4d392f5e6be4c79b907b5aa/diff/usr/share/elasticsearch/config/jvm.options
/var/lib/docker/overlay2/0f5e15a32830359d506b5a58ee079e71a625fb606fc3e5586d00145ec7744d97/diff/etc/elasticsearch/jvm.options
Utilisez la commande vi 文件名
pour modifier pour réduire l'espace jvm
## JVM configuration
################################################################
## IMPORTANT: JVM heap size
################################################################
##
## You should always set the min and max JVM heap
## size to the same value. For example, to set
## the heap to 4 GB, set:
##
## -Xms4g
## -Xmx4g
##
## See https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
## for more information
##
################################################################
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms1g 改成512m
-Xmx1g 改成512m
################################################################
## Expert settings
################################################################
##
## All settings below this section are considered
## expert settings. Don't tamper with them unless
## you understand what you are doing
##
################################################################
## GC configuration
8-13:-XX:+UseConcMarkSweepGC
8-13:-XX:CMSInitiatingOccupancyFraction=75
8-13:-XX:+UseCMSInitiatingOccupancyOnly
Le fichier pom devient ignoré pom.xml
Description du problème:
- Lorsque Maven a créé le module, je l'ai supprimé car le module n'a pas été construit correctement à cause du premier contact! Créé un autre module avec le même nom qui a été supprimé auparavant. Cependant, le fichier pom.xml ignoré est apparu.
Solution: - Cliquez sur fichier -> Paramètres -> Build, Excution, Deployment -> Build Tools -> Maven -> Ignored Files pour décocher
commande npm run
Impossible de trouver le module
- [webpack-cli] Erreur: impossible de trouver le module 'xxxxxx'
- npm WARN Local package.json existe, mais node_modules manquant, vouliez-vous l'installer?
- Lorsque ce problème se produit, vous pouvez simplement télécharger le module, mais ne pas l'installer, exécutez simplement
npm install即可
- Erreur: impossible de trouver le module 'webpack-cli / bin / config-yargs'
- La nouvelle version de webpack-cli n'a pas le fichier config-yargs, vous devez donc abaisser la version de webpack
PageHelper ne fonctionne soudainement pas
Solution
Dans le projet springBoot, vous constatez soudainement que, quelle que soit la manière dont vous vérifiez, le backend vous renvoie toujours les résultats. À ce stade, vous devrez peut-être envisager de passer à un
projet Maven de pageheler .
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>版本号</version>
</dependency>
Projet springBoot
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>版本号</version>
</dependency>
Échec de la configuration automatique d'une source de données
Description:
Failed to auto-configure a DataSource: 'spring.datasource.url' is not specified and no embedded datasource could be auto-configured.
Reason:
Failed to determine a suitable driver class
Action:
Consider the following:
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).
Solution
Solution 1:
Configurez dans le
lanceur @SpringBootApplication (exclude = {DataSourceAutoConfiguration.class})
Solution 2:
Modifiez le fichier pom
et ajoutez-le dans la dépendance
<exclusions>
<exclusion>
<!--pom坐标-->
</exclusion>
</exclusions>
Solution 3:
modifier le fichier de configuration
spring:
autoconfigure:
exclude: org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
Solution 4:
Si vous avez essayé les deux méthodes ci-dessus et que le problème n'est pas encore résolu, vous pouvez lui ajouter les paramètres de connexion à la base de données, et il faudra encore un an pour la couture et la réparation.
InsatisfaitDependencyException:
org.springframework.beans.factory. UnsatisfiedDependencyException : erreur lors de la création du bean avec le nom ' brandController ': dépendance non satisfaite exprimée par le champ 'brandFeign'; l'exception imbriquée est org.springframework.beans.factory.BeanCreationException: Erreur lors de la création du bean avec le nom « com.zml.feign.ApiBrandFeign »: FactoryBean a lancé une exception lors de la création d'objet; l'exception imbriquée est java.lang.NullPointerException
Ce que j'ai rencontré était dû à la version trop basse de swagger.
Comme la version 2.2.2 était utilisée auparavant, le problème a été résolu en la changeant en 2.6.1
[Vue warn]: Échec de la résolution de la directive: xxxx
(trouvé dans)
Il convient de noter que lorsque nous utilisons des commandes personnalisées, nous convertirons les commandes en minuscules lorsque nous les utilisons. Par exemple, lorsque je définis une commande myFocus et que j'utilise v-myFucus, vous pensez peut-être que c'est correct, mais il Rapportera une erreur Échec de la résolution de la directive: myfocus, nous pouvons voir que la directive est devenue minuscule
Erreur lors de la transmission des données Json à l'en-tête de demande de microservice
{
"timestamp": "2021-01-07T15:28:39.835+0000",
"status": 415,
"error": "Unsupported Media Type",
"message": "Content type 'application/octet-stream' not supported",
"path": "/brand/query/1/9"
}
Doit être changé en Content-Type = application / json