Alguns problemas de desenvolvimento

Problemas entre domínios

O cabeçalho No'Access-Control-Allow-Origin 'está presente no recurso solicitado. Portanto, o acesso Origin'null' não é permitido. O acesso
entre domínios viola a política de mesma origem!
Mesma origem: mesmo nome de domínio, protocolo e porta.
Política de mesma origem: o Ajax do navegador só pode acessar recursos com o mesmo nome de domínio ou IP de sua página html.
A política de mesma origem é o comportamento do navegador para proteger os dados locais de serem poluídos pelos dados recuperados pelo código JavaScript. Portanto, ele intercepta os dados recebidos da solicitação enviada pelo cliente, ou seja, a solicitação é enviada e o servidor responde, mas não pode ser O navegador recebe.

Solução um:

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

Solução dois:

Configure na frente da classe: @CrossOgigin (origins = "*", maxAge = 3600)

Solução 3: use o proxy reverso nginx

Mapear url para a mesma fonte

Opção 4: use jsonp

JSONP é um método comum para comunicação de origem cruzada entre servidor e cliente. O maior recurso é a aplicação simples e boa compatibilidade (compatível com versões anteriores do
IE). A desvantagem é que ele suporta apenas solicitações get, não solicitações post.
A ideia central: a página da web solicita dados JSON do servidor adicionando um elemento. Depois que o servidor recebe a solicitação, ele envia os dados de
volta na posição do parâmetro de uma função de retorno de chamada com um nome especificado.

O fundo do Axios não consegue obter os parâmetros passados ​​pelo primeiro plano

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

Nós olhamos seu código-fonte assim

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

A razão é que axios faz duas coisas quando o parâmetro é Object

  • o cabeçalho está definido como application / json; charset = utf-8
  • Os parâmetros são Json.stringify,
    então você precisa negociar com os parceiros de back-end e usar a classe de entidade para receber

elasticalsearch5 não pode começar

Mensagem de erro

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álise de causa

Isso ocorre porque elasticsearch5.0 aloca 2g de espaço jvm por padrão e a memória não é suficiente para alocar.

solução:

Execute o comando para find / -name jvm.optionsencontrar o arquivo de configuração de opções 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 o comando vi 文件名para editar para reduzir o espaço 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

O arquivo pom torna-se Ignorado pom.xml

Descrição do Problema:

  • Quando o Maven criou o módulo, eu o apaguei porque o módulo não foi construído corretamente por causa do primeiro contato! Criado outro módulo com o mesmo nome que foi excluído antes. No entanto, o arquivo pom.xml Ignorado apareceu.
    Solução:
  • Clique em arquivo -> Configuração -> Compilar, Execução, Implementação -> Ferramentas de Compilação -> Maven -> Arquivos Ignorados para desmarcar

comando npm run

Módulo não encontrado

  1. [webpack-cli] Erro: Não é possível encontrar o módulo 'xxxxxx'
  • npm WARN O package.json local existe, mas falta o node_modules, você pretendia instalar?
  • Quando esse problema ocorrer, você pode apenas baixar o módulo, mas não instalá-lo, apenas executenpm install即可
  1. Erro: Não é possível encontrar o módulo 'webpack-cli / bin / config-yargs'
  • A nova versão do webpack-cli não tem o arquivo config-yargs, então você precisa diminuir a versão do webpack

PageHelper de repente não funciona

solução

No projeto springBoot, você repentinamente descobre que não importa como você verifique, o back-end ainda lança os resultados para você. Neste momento, você pode precisar considerar mudar para um
projeto Maven do pageheler .

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

projeto springBoot

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

Falha ao configurar automaticamente um DataSource

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

solução

Solução 1:
configurar no
iniciador @SpringBootApplication (exclude = {DataSourceAutoConfiguration.class})
Solução 2:
modificar o arquivo pom
e adicioná-lo à dependência

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

Solução 3:
modificar o arquivo de configuração

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

Solução 4:
Se você tentou os dois métodos acima e o problema ainda não foi resolvido, você pode adicionar os parâmetros de conexão do banco de dados a ele e levará mais um ano para costurar e consertar

InsatisfeitoDependencyException:

org.springframework.beans.factory. UnsatisfiedDependencyException : Erro ao criar bean com o nome ' brandController ': Dependência não satisfeita expressa por meio do campo 'brandFeign'; a exceção aninhada é org.springframework.beans.factory.BeanCreationException: Erro ao criar bean com o nome ' com.zml.feign.ApiBrandFeign ': FactoryBean lançou exceção na criação do objeto; a exceção aninhada é java.lang.NullPointerException

O que encontrei foi causado pela versão muito baixa do swagger.
Como o 2.2.2 foi usado antes, o problema foi resolvido mudando-o para 2.6.1

[Vue warn]: Falha ao resolver diretiva: xxxx

(encontrado em)
É importante notar que quando usamos comandos personalizados, vamos converter os comandos em minúsculas quando os usarmos. Por exemplo, quando eu defino um comando myFocus e uso v-myFucus, você pode pensar que está certo, mas é Irá reportar um erro Falha ao resolver diretiva: myfocus, podemos ver que a diretiva tornou-se em minúsculas

Erro ao transmitir dados json para o cabeçalho da solicitação de microsserviço

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

Precisa ser alterado para Content-Type = application / json

Acho que você gosta

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