Algunos problemas de desarrollo

Problemas entre dominios

El encabezado "Access-Control-Allow-Origin" no está presente en el recurso solicitado. Por lo tanto, no se permite el acceso a Origin'null ". El acceso
entre dominios viola la política del mismo origen.
Mismo origen: mismo nombre de dominio, protocolo y puerto.
Política del mismo origen: Ajax del navegador solo puede acceder a recursos con el mismo nombre de dominio o IP que su página html.
La política del mismo origen es el comportamiento del navegador para proteger los datos locales de ser contaminados por los datos recuperados por el código JavaScript. Por lo tanto, intercepta los datos recibidos de la solicitud enviada por el cliente, es decir, la solicitud se envía y el servidor responde, pero no puede ser. El navegador recibe.

Solución uno:

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);
    }
}

Solución dos:

Configurar delante de la clase: @CrossOgigin (origins = "*", maxAge = 3600)

Solución 3: use el proxy inverso nginx

Asignar URL a la misma fuente

Opción 4: use jsonp

JSONP es un método común para la comunicación de origen cruzado entre el servidor y el cliente. La característica más importante es una aplicación simple y una buena compatibilidad (compatible con versiones inferiores de
IE). La desventaja es que solo admite solicitudes de obtención, no de publicación.
La idea central: la página web solicita datos JSON del servidor agregando un elemento. Después de que el servidor recibe la solicitud, envía los datos
a la posición del parámetro de una función de devolución de llamada con un nombre específico.

El fondo de Axios no puede obtener los parámetros pasados ​​por el primer plano

axios.post(`http://localhost:8080/brands/insert`, {
    
    
                        name: this.name, 
                        date: new Date()
                    })

Miramos su código fuente así

if (utils.isObject(data)) {
    
    
	setContentTypeIfUnset(headers, 'application/json;charset=utf-8');
	return JSON.stringify(data);
}

La razón es que axios hace dos cosas cuando el parámetro es Object

  • el encabezado está configurado en application / json; charset = utf-8
  • Los parámetros son Json.stringify,
    por lo que debe negociar con los socios de back-end y usar la clase de entidad para recibir

elasticalsearch5 no se puede iniciar

Mensaje de error

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

Análisis de causa

Esto se debe a que elasticsearch5.0 asigna 2 g de espacio jvm de forma predeterminada y la memoria no es suficiente para asignar.

solución:

Ejecute el comando para find / -name jvm.optionsencontrar el archivo de configuración de opciones de jvm

/var/lib/docker/overlay2/860d339b23854c34f5f1da64d672faf55f8d0d89e4d392f5e6be4c79b907b5aa/diff/usr/share/elasticsearch/config/jvm.options
/var/lib/docker/overlay2/0f5e15a32830359d506b5a58ee079e71a625fb606fc3e5586d00145ec7744d97/diff/etc/elasticsearch/jvm.options

Use el comando vi 文件名para editar para reducir el espacio de 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

El archivo pom pasa a ser ignorado pom.xml

Descripción del problema:

  • Cuando Maven creó el módulo, lo eliminé porque el módulo no se construyó correctamente debido al primer contacto. Creó otro módulo con el mismo nombre que se eliminó antes. Sin embargo, apareció el archivo pom.xml Ignorado.
    Solución:
  • Haga clic en archivo -> Configuración -> Compilación, ejecución, implementación -> Herramientas de compilación -> Maven -> Archivos ignorados para desmarcar

comando npm run

No se puede encontrar el módulo

  1. [webpack-cli] Error: no se puede encontrar el módulo 'xxxxxx'
  • npm WARN Local package.json existe, pero falta node_modules, ¿quiso instalar?
  • Cuando ocurre este problema, puede descargar el módulo, pero no instalarlo, simplemente ejecutarnpm install即可
  1. Error: no se puede encontrar el módulo 'webpack-cli / bin / config-yargs'
  • La nueva versión de webpack-cli no tiene el archivo config-yargs, por lo que debe reducir la versión del paquete web

PageHelper de repente no funciona

solución

En el proyecto springBoot, de repente se da cuenta de que no importa cómo lo verifique, el backend todavía le arroja los resultados. En este momento, es posible que deba considerar cambiar a un
proyecto de pageheler Maven.

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>版本号</version>
</dependency>

proyecto springBoot

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>版本号</version>
</dependency>

No se pudo configurar automáticamente una fuente de datos

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).

solución

Solución 1:
Configure en el
lanzador @SpringBootApplication (exclude = {DataSourceAutoConfiguration.class})
Solución 2:
Modifique el archivo pom
y agréguelo en la dependencia

<exclusions>
	<exclusion>
		<!--pom坐标-->
	</exclusion>
</exclusions>

Solución 3:
modifique el archivo de configuración

spring:
	autoconfigure:
		exclude: org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

Solución 4:
si ha probado los dos métodos anteriores y el problema aún no se ha resuelto, puede agregarle los parámetros de conexión de la base de datos y tardará otro año en coser y reparar

UnsatisfiedDependencyException:

org.springframework.beans.factory. UnsatisfiedDependencyException : Error al crear un bean con el nombre ' brandController ': Dependencia insatisfecha expresada a través del campo 'brandFeign'; la excepción anidada es org.springframework.beans.factory.BeanCreationException: Error al crear un bean con el nombre ' com.zml.feign.ApiBrandFeign ': FactoryBean lanzó una excepción en la creación de objetos; la excepción anidada es java.lang.NullPointerException

Lo que encontré fue causado por la versión demasiado baja de swagger.
Dado que 2.2.2 se usó antes, el problema se resolvió cambiándolo a 2.6.1

[Advertencia de Vue]: No se pudo resolver la directiva: xxxx

(que se encuentra en)
Vale la pena señalar que cuando usamos comandos personalizados, convertiremos los comandos a minúsculas cuando los usemos. Por ejemplo, cuando defino un comando myFocus y uso v-myFucus, puede pensar que es correcto, pero Informará un error No se pudo resolver la directiva: myfocus, podemos ver que la directiva se ha vuelto minúscula

Error al transmitir datos json al encabezado de solicitud de microservicio

{
    
    
    "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"
}

Debe cambiarse a Content-Type = application / json

Supongo que te gusta

Origin blog.csdn.net/BrightZhuz/article/details/112995119
Recomendado
Clasificación