eyePaddles 发布的文章

出现问题:

Cause: java.sql.SQLException: Incorrect string value: '\xE7\x94\xA8\xE6\x88\xB7' for column 'comment_string' at row 1

解决方案:

  1. 找到mysql安装目录下的my.ini,修改为:

    [mysql]
    default-character-set=utf8mb4
    [mysqld]
    character-set-server=utf8mb4
  2. navicat设计表修改各字段的字符集为utf8mb4,记得保存
    附网上修改字段字符集的sql:

    alter table TABLE_NAME convert to character set utf8mb4 collate utf8mb4_bin; (将TABLE_NAME替换成你的表名)

以下代码报错:

<el-upload action="#" list-type="picture-card" :auto-upload="false" limit="1"></el-upload>

报错提示:

[Vue warn]: Invalid prop: type check failed for prop "limit". Expected Number with value 1, got String with value "1".

将limit属性改为单向绑定就好了:

<el-upload action="#" list-type="picture-card" :auto-upload="false" :limit="1"></el-upload>

一、问题分析:

前端与后端协议、域名、端口有一项不同,浏览器依然会请求数据到后端,但不接收后端响应的结果的现象。

二、产生问题的原因:

  1. 用户在浏览器输入的URL中包含的协议、域名、端口都完全相同。如果有一项不同,浏览器会觉得有安全问题,从而产生跨域问题。
  2. 如果使用Postman等开发工具进行交互是不会出现跨域问题,这是浏览器特有的限制。
  3. 在后端服务添加CORS策略的配置就可以解决跨域问题。

三、解决跨域问题具体方案:

  1. 普通Web项目,添加一个crossdomain.xml文件。
  2. Spring项目,添加处理跨域的过滤器或拦截器。
  3. Spring boot项目,在支持跨域的方法上添加@CrossOrigin注解。
  4. Spring boot项目更便捷的方式,实现WebMvcConfigurer接口中的addCorsMappings方法。
  5. Ngnix配置反向代理,例如:用户访问网址为192.168.0.1:80,网页ajax获取192.168.0.1:8080跨域数据,可以在ngnix.conf中配置192.168.0.1:80的server的location /cors/ {proxy_pass http://localhost:8080/user}。此时192.168.0.1:80的网页可以通过192.168.0.1:80/cors/访问到http://localhost:8080/user