22.02.28周一
昨天看了一个全栈实战视频,成功开启了后端服务器,把数据库的数据展示在了localhost上;再转战前端,使用react-umi框架,虽然html、css的语法在寒假学尚硅谷react教程时就基本懂得了,但是还是一直无法连通api接口调得localhost的数据。
另外,今天学习的时间确实过长了,一整天的promise、fetch学下来,代码还是不是出错就是版本过低。故明天,为了调整心态、提高真正的学习效率,要做到两点,一是控制学习不能太长,二是看一些官方完整版的技术视频,不要图时间段就看自媒体的,因为确实没什么用。
22.03.01周二
早上10点半,跟着“Umi 3+Dva入门实践”的教学视频(umi与Dva结合传递数据仓库model.ts)敲了一个早上的代码,明明代码敲得一模一样,但是转到/users后就是一片空白。
网上umi视频教程特别少,除了上面提到的这个,在B站上也搜不到其他篇幅完整的umi视频,就好像小说《鲁滨孙漂流记》里的星期五,只能跟着流落荒岛的鲁滨孙一个人学习,失去了比较、参考的机会,学习回报率极低,甚至可以说没有一点希望,所以基本上决定放弃umi这个框架了。
但是回过头来,返回到create-react-app,进入vscode的App.js文件中,不知道是什么插件作祟,居然会自动把return内的html标签拆解掉,好好的首行缩进被拆解得齐头并进,也根本无法进行后面的学习。
中午和陈师兄交流,他说现在生产模式的教学网站已经改用umijs3.0而不是2.0了,还推荐我学习midway框架。然后还让我改js为jsx后缀,和安装javascriptreact插件来解决App.js自动解除格式化的问题。也要感谢中午的时候,阿龙帮我一起思考了上面的这个问题。
下午攀树课结束后来到图书馆,学习了视频“React中Axios库的封装和使用”,这里除了基本的get、post方法,还涉及到了一点Axios的源码教学。视频学了一半,虽然成功在httpbin.org上get、post了数据,但是和本地服务器做(跨域)数据交互时,还是被拒绝(has been blocked by CORS policy),好像又要学一门nginx技术。晚课结束后,还要就这个问题继续努力。
晚上下课回宿舍后,把“Axios”视频看完,在服务端配置了COSR插件,终于实现了前后端的数据交互!马上又研究了组件的this.state属性,把axios返回的数据用setState更新到了this.state属性上,最后成功把交互数据在render函数内的return方法里调用了。
实现了这前后端项目基础的最后一环后,感到浑身轻松了不少,有希望明天就把反馈功能完成。当然,完成和主站点分立的反馈界面后也要注意,主站点的答题系统是基于react-umi2.0或者3.0框架开发的,以后如果要实现别的功能,肯定还是躲不开和umi这个“野孩子”的交流;或者,明天也可以试试直接用umi实现反馈。
22.03.02周三
早上都在处理后端数据result,result的格式是[{},{},{}],我好久才意识到这是列表,而不是数组。后来令products=result.data,格式依然是[{},{},{}],{}里面是对象,然后用products[0].id或者products[1].content_text就可以取出对象的值value。但是这时需要面对一个新问题:products在第一次渲染html时是没有值的,因为前端还没有请求到后端数据,这时products也是空的,不能用[n]来取特定位置的对象,于是报错:Cannot read properties of null。这时我考虑在<script>里写js的if条件语句,判断products有值了再渲染页面,但是,要如何把<script>内的信息传递到外面、并填充到特定的标签里呢?貌似在主组件里,使用getelementbyid.innerHTML可以实现,但是在子组件里,此方法无法找到外面的标签,卡壳到了中午两点。
下午在图书馆,为了处理“Objects are not valid as a React child (found: object with keys {id}). If you meant to render a collection of children, use an array instead.”
的问题,学习了JSON格式和react router dom。
终于,在晚课前制定出了“三步走”计划:先在render里创造函数,用products[n]方法从列表[{},{},{}]中取出独立的元素{},再用stringify把对象{}转化成字符串str并放入数组Arr中(即把对象集合products拆分开),最后就能用map函数逐个打印。
晚课是大数据分析与工业建模,课堂上,老师简单讲解了他个人官网的js代码,pandas的用法,各种语言、框架在菜鸟教程或官方文档的说明书,一步一步把我们领进门,讲的很多东西也对我的毕设作业有帮助。
晚上在宿舍,发现三步走计划里,把对象转换成字符串这一步操作其实是多余的,因为对象也可以直接被map方法遍历到<li>标签里。之后熟悉了一下css的操作,对dev、span标签和 HTML DOM的认识更加全面了。
明天要解决的问题,是类似于“高度浮动,水平靠左”之类的css复合要求,还有3000字左右的毕设综述,综述对于我的毕设作业是十分必要的——我大可以从数据库中的数据结构和逻辑关系入手,厘清feedback反馈模块所涉及到的表和数据。
22.03.05周六
中午研究navicat的mysql存储逻辑,和陈师兄一起寻找反馈信息的位置(transcript),还发现原来navicat每页最多显示1000行数据。下午调试后端时,因为在控制器、路由取名不规范(好像不能加大小写、下划线),损坏了egg框架的index.d.ts文件,只好把egg重新下载(重新安装依赖和egg-mysql和egg-cors插件)。晚上踢了会足球回来,开始用数据结构的算法思想研究mysql逻辑,终于成功后,又开始研究图表echarts的用法。
22.03.07周一
await会保证axios.get拿完数据再进行其他操作,而不会跳过get操作;
调用setState,会先跳过setState后面的内容,立即重新调用render渲染,但是渲染伊始会先更新状态state,render渲染完后再执行setState的剩余内容。
22.03.10周四
如何在html里点击按钮动态插入组件?其实可以换一个思路——动态插入新的路由界面,但是这样会把之前路由界面覆盖。
Route只有写在最外层组件有用,若写在子组件内,点击NavLink后会闪退。解决方法是追问前因后果把路径写完整——NavLink to="/exercise/films"而不是NavLink to="/films"。
在父组件中,如何用NavLink直接通知子组件更新自己的state?这样,即使不在父组件中挂载子组件,也能把信息交给子组件;如果用正常的props传值,会导致子组件刚开始渲染时props为空而报错。
如何用axios向服务器传递数组key_question?————
改egg路由后,框架无法自动识别service或者controller的新名字(内置路由函数不更新)————
22.03.12周六
父组件如何调用子组件的函数? ————直接渲染子组件,自然就能用子组件的函数了——ReactDOM.render(<Chart summation={this.state.summation}/>,document.getElementById('insertChart'))
如何解决函数内同步,函数间异步问题?加上async后函数变成异步函数,加await后函数内部可以实现同步,但是函数间不能实现同步(函数1中遇到await会直接跳到函数2,函数2执行完再执行函数1剩下的内容)。————方法一:setTimeout(有用,但是无法确定需要设置多少延迟时间)————
componentDidMount只能运行一次,如果要多次渲染图表chart,需要设计按钮,手动更新状态,或者再加一个componentDidUpdate(相当于上双重保险)。
子组件内可以只用props接受父组件传来的参数,没必要构造construction函数再使用自己的state。
Triggering nested component updates from render is not allowed 不允许从渲染触发嵌套组件更新?————
如何在map执行时在页面上渲染Loading组件?个人猜测,每循环map一次,Loading组件都会被自动解除挂载;另外,如何实现Loading的全屏覆盖加载?————
22.03.13周天
Navicat15激活:https://www.cnblogs.com/xiaomingxing/p/15228716.html
如何用sql横向拼接(并列合并)两个SELECT返回的结果表?————SELECT * FROM {xxx} AS a1,{xxx} AS a2。detail
报错:Every derived table must have its own alias(每一个派生出来的表都必须有一个自己的别名)————直接在新生产的表中加入 他的别命名就行(“as a”或者“a”),“a”为新表的别名。detail
22.03.14周一
antd样式没有显示问题(网页频闪问题)————1、直接在你的入口文件引入一个css文件。2、在这个文件中加一句 @import '~antd/dist/antd.css’。如果找不到这个文件,就把antd重新install一次(npm install antd --save) detail
antd中,如何让NavLink把组件链接到非紧邻NavLink正下方的位置(比如content框里)?或问,如何让NavLink自定义新组件的插入位置?————把NaviLink写在Header里,Route写在Content里,并保证字地址包含父地址前缀。
antd中,Header不固定,会和Content重叠?————
egg-sql中写入长sql语句并分行?————可以query('xxx'+'xxx'+'xxx')的格式,但容易导致SQL注入(客户端用sql语句攻击)。
控制Header组件相对于页面侧滑轮的固定与浮动————style={{position:'fixed'}}
Echarts用函数方式把纵坐标返回成百分数————formatter: function (a, b, c) { return (a.data*100).toFixed(1) + "%";
判断后端返回的数据为空[]则填充其为“404对象”的方法————可以通过看返回值result的长度是否为0来判断数据是否为空,即 if(result.data.length !== 0){xxx}
22.03.15周二
url传递多参数的方法————127.0.0.1:7001/api/eqa?key_exam_id=129&key_question_id=1633
egg接受多参数的方法(ctx.query)————注意find后只有一个括号,不要写成两个
async index() {
const { ctx, service } = this
const key_exam_id = ctx.query.key_exam_id;
const key_question_id = ctx.query.key_question_id;
const eqas = await service.eqa.find(key_exam_id, key_question_id)
ctx.body = eqas.user;
}
node sql 语句传入参数写法————用 `xxx ${} xxx` detail
使用 react + antd 组件时,有时会报出 Each child in a list should have a unique “key“ prop. 这样的错误————每次多向数据库要一个唯一的id属性,并把这个id作为rowKey属性附加给Table:<Table columns={columns} dataSource={data} rowKey={data => data.id} />
设计时间轴————
22.03.16周三
设计锚点(页内导航)————https://ant.design/components/anchor-cn/#components-anchor-demo-basic
nodejs中sql语句过长换行解决方法————https://blog.csdn.net/u010489586/article/details/40378993
antd导航锚点悬浮效果(特定位置)——position:"fixed", zIndex:1
使用NodeJS在MySQL中运行SQL文件 ————
echarts成绩分区间展示(或在数据库中处理)————https://www.cnblogs.com/zoli/p/12120984.html
可以在navicat把复杂的SQL转化成视图,但在js中如何运用视图?————
22.03.19周六
nodejs写入复杂sql需要分行时————只需在首行开端和尾行末端加`,中间行不用做任何处理
React Ant Design中table里面使用onclick事件页面加载后自动执行,点击无效————1. 如果事件函数不需要参数,那么去除() 即可;2. 如果事件函数需要参数,那么使用箭头函数包括即可。https://www.cnblogs.com/xuhua123/p/13262046.html/79985877
bind在js中的作用——
22.03.20周天
javaScript连续解构赋值————const {keyWordElement_Eqa:{value:keyWord}} = this,其中,花括号里是解构出来的子变量,冒号的作用是把变量重命名。
获取input框的值————ref={c => this.keyWordElement_Eqa = c}
eggjs路由和组件命名法则————针对符合单词,路由地址可以加下划线,路由组件名字不能用下划线但是可以用小驼峰。router.get('/api/eqa_standard_answer', controller.eqaStandardAnswer.index);
如何判断变量等于特殊字符{}————转化成字符串再比较长度 if(JSON.stringify(result.data[0].args).length <= 4)
22.03.21周一
modal弹窗或者drawer抽屉必须使用函数组件,但是函数组件没有componentDidMount————在function函数组件里内嵌一个class类组件,然后再调用componentDidMount
componentDidMount只能渲染一次,之后不更新————因为每次点击子按钮后,都会渲染一个出<div id='insertEqaStandardAnswerList'></div>标签,而一旦出现相同的标签,ReactDOM就把组件优先插入第一个匹配成功的标签(空白页面并不代表内容没有渲染,而是代表内容渲染错了位置)。 https://www.cnblogs.com/gdsblog/p/7348375.html
22.03.22周二
今天的成果:
完成非参变选择题模块EqaStudentAnswerOption,因为要区别“跳过不做,手动交白卷”和“突然掉线,系统交白卷”两种情况下生成的答案,在sql数据清理工作上花了很大的劲;
删繁就简,整理代码,得到Feedback_03版本;
安装VMware和Ubuntu;
安装git。
明天的任务:
实现echarts柱状图特定位置上色;
git上传项目代码到云端;
完成填空题模块EqaStudentAnswerFill。
22.04.26周二
ES6中箭头函数加不加大括号的区别————
当你的箭头函数仅有一个参数的时候,可以省略掉括号。
当你的函数仅有一个表达式的时候,可以省略{}和return
fetch{xxx}
.then(
response =>
response.json();
)
和
fetch{xxx}
.then(
response =>
{ response.json() };
)
不一样
以上说明console里的json()方法会对函数中的变量产生影响
fetch函数 url只有一个 '#' 是什么意思?
前端路由的核心,就在于改变视图的同时不会向后端发出请求——在第一个#后面出现的任何字符,都会被浏览器解读为位置标识符。这意味着,这些字符都不会被发送到服务器端。
单单改变#后的部分,浏览器只会滚动到相应位置,不会重新加载网页。
SequenceMatcher函数
作用:查找最大相同序列
算法的语法:https://blog.csdn.net/caimouse/article/details/48598539
def _init_中的self是什么
self, 就是指由class造出来的instance实例。
self是在为class编写instance method的时候,放在变量名第一个位子的占位词。
在具体编写instance method里,可以不使用self这个变量。
如果在method里面要改变instance的属性,可以用self.xxxx来指代这个属性进行修改。
22.04.25周二
python调用其他文件夹下文件中的函数以及类中的函数
my_test.py
def test():
print('this is test func')
class my_test:
def test():
print('this is a class named A, its func is test() ')
main.py
# 导入函数
from similarity_project.my_test import test as func_test
# 导入类
from similarity_project.my_test import my_test as class_test
# 导入文件
from similarity_project import my_test as file_test
# 先导入函数,再调用函数
func_test()
# 先导入类,再接调用类中的函数
class_test.test()
# 直接调用文件中的函数
file_test.test()
# 直接调用文件中的类中的函数
file_test.my_test.test()
jwt token验证(JSON Web Tokens)
jwt官网 https://jwt.io/introduction/
视频 JWT认证原理、流程整合springboot实战应用 https://www.bilibili.com/video/BV1i54y1m7cP?p=3&spm_id_from=pageDriver
- flask_jwt_extended
使用Postman做GET和POST测试
python循环引用解决
一般是文件重名引起的,在前面加一个“my_”即可
https://blog.csdn.net/weixin_44840774/article/details/111187887
flask 出现 TemplateNotFound的问题
修改关键文件夹的默认路径即可 app = Flask(name, template_folder='../templates',static_folder="../static")
22.04.27周三
如何用pip在其他文件中install包?
如何利用pip在指定版本的python环境下安装库
https://blog.csdn.net/qq_45669924/article/details/123849902
但是若已经在某处安装了,系统也检测得到
Requirement already satisfied: flask_jwt_extended in
python - try except
作用:捕获异常
https://baijiahao.baidu.com/s?id=1594434243519686727&wfr=spider&for=pc
python-@修饰符
用做函数的修饰符,可以在模块或者类的定义层内对函数进行修饰
http://www.py.cn/jishu/jichu/26907.html
Python @函数装饰器及用法
http://c.biancheng.net/view/2270.html
使用函数装饰器 A() 去装饰另一个函数 B(),其底层执行了如下 2 步操作:
将 B 作为参数传给 A() 函数;
将 A() 函数执行完成的返回值反馈回 B。
flask-登录机制-session
from flask import session, g
22.04.28周四
今日目标
拆解flask-app.py到多个子文件中(√)
找到合适的html做为login和home界面(×)
保证前端页面、后端接口都需要登录才能使用(√)
在feedback中新增“退出登录”按钮(×)
python导入各层级文件的方法(寻找根目录)
import sys
import os
# 得到当前根目录
o_path = os.getcwd() # 返回当前工作目录
sys.path.append(o_path) # 添加自己指定的搜索路径
flask static文件路径
将Python Flask应用程序拆分为多个文件
使用flask 蓝图(blueprint)技术
https://zhuanlan.zhihu.com/p/357444025
https://blog.51cto.com/u_12136715/2952920
url_for报错
werkzeug.routing.BuildError: Could not build url for endpoint 'xxxx'.
如果在 html中使用{{ url_for("login") }}就会出现上面那个错误。如果使用{{ url_for("web.login") }}就不会报错了
为什么有时候Blueprint创建的app不能读取静态文件static?
Flask Blueprint无法找到静态文件夹
https://www.thinbug.com/q/25795897
解决方法1:禁用应用程序静态文件夹app = Flask(name, static_folder=None)
解决方法2:添加网址前缀url_prefix
redirect的code是什么意思?
301和302 code码有什么区别?
301 redirect: 301 代表永久性转移(Permanently Moved)。
302 redirect: 302 代表暂时性转移(Temporarily Moved )。
为什么改变redirect(url_for)后响应不变?
tempCodeRunnerFile写入了缓存,应该即时删除
在 HTML 页面中使用 React
React中Url参数改变页面不刷新的解决办法
React路由跳转,路径改变页面未刷新问题
https://www.jb51.net/article/216189.htm
react如何默认调用index.js?
react如何修改项目入口文件index.js为jsx?
22.04.29周五
今日目标
在导航栏中点击HashRouter以改变url,但是页面不转跳(×)
登陆机制优化,fetch获取cookie(√)
在feedback中新增“注销登录”按钮(√)
HashRouter导致url改变,但是页面不转跳
最后决定直接用旧版本代码,可能是入口文件index.js和index.jsx的问题,也可能是react-router-dom的版本的问题
fetch如何进行前后端数据交互?
前端用fetch发送数据
https://blog.csdn.net/weixin_43880397/article/details/120171864
Python的flask接收前台的ajax的post数据和get数据的方法
post方式传值,那么在后台接收,使用request的form方法
request.form.get值为None?
json和字典的区别?
json是str,字典是dict
正确的JSON:属性名必须用双引号包裹
获取字典的key的方法
https://blog.csdn.net/weixin_28958727/article/details/111946516
data1 = {
"username": "888",
"password": "888",
}
print(type(data1))
print(data1['888'])
print(data1['888'])
session和g是什么?赋值时需要对请求头做怎样的限制?
session :session 是可以跨 request 使用的,session 的数据是经过加密后存储在 cookie 里的,用户每次 request 都会把这些 cookie 信息发回来,从而实现跨 request 使用。
g:g是面向单个 request 的,一个 request 处理完,g 里的东西就没了。
session和g是多线程的!
为什么用react-fetch不会生成session
向同一个url发送post请求时,若使用react-fetch进行此操作,则无法把值赋给服务端的g.user;若使用postman助手进行此操作,则可以把值赋给服务端的g.user?
又名:react fetch session丢失
为什么会出现postman接口调试正常而程序里fetch调用却出现session丢失的问题?
https://www.cnblogs.com/mwx-sky/archive/2022/04/13/16140404.html
解决方法:
前端-react-fetch-添加credentials
fetch(url, {
method: "POST",
mode: 'cors',
credentials: 'include',
headers: {
'Accept' : '*/*',
'Content-Length' : '<calculated when request is sent>',
'Content-Type': 'application/json; charset=utf-8',
},
body: JSON.stringify(params)
})
后端-flask-after_request-添加Access-Control-Allow-Credentials
@app_feedback.after_request
def after_request(resp):
print('response.headers: ', '\n', resp.headers)
resp.headers['Access-Control-Allow-Credentials'] = 'true'
resp.headers['Access-Control-Allow-Methods'] = 'PUT,GET,POST,OPTIONS'
print('response.headers: ', '\n', resp.headers)
return resp
header里的cookies是怎么生成的?为了生成cookie,头文件有哪些内容是必须的?
fetch如何注销session状态?
头文件要和登记登录状态的一样:
改数据交互方法为POST,加入credentials: 'include',
这样,后端才能找到指定线程的session,并注销其登录状态。
fetch-post能拿到response吗?如果可以,如何得到response?
fetch post返回的response是什么?
https://www.it610.com/article/1295914305799135232.htm
fetch(myRequest)
.then(function (response) { return response.json() })
.then(function (data) { console.log(data) })
注意,对于response,前面有return,后面才能接受并使用
在函数内找不到this.setState
Cannot read properties of undefined (reading 'setState')
原因:this指向出错
解决办法:使用箭头函数
https://www.imooc.com/wenda/detail/485493
22.04.30周六
今日目标
在后端flask框架中,同时导入并运行两个react项目(×)
在前端react框架中,合并login和feedback模块为同一个项目(√)
flask中导入了两个react文件,但是只能正常展示一个,另外一个会失效
未解决!
react如何控制能不能控制url中#的位置?
react如何控制能不能控制url中#的位置?
react如何设置不带#的url?
react路由为什么没有覆盖原来的页面?
解决办法:改HashRouter为BrowserRouter!
22.05.01周日
今日目标
自动获取题目类型数据(×)——题型分类太多
手动获取题目类型数据(√)
eqns(latex)格式处理(√)
题干new_text文本分类模型(√)
答案new_eqns公式分类模型(×)——内容太多
Python如何获取当前目录、上一级目录?
import sys
import os
o_path = os.path.abspath(os.path.join(os.getcwd(), "../.."))
sys.path.append(o_path) # 添加自己指定的搜索路径
print(o_path)
print('***获取当前目录***')
print(os.getcwd())
print(os.path.abspath(os.path.dirname(__file__)))
print('***获取上级目录***')
print(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
print(os.path.abspath(os.path.dirname(os.getcwd())))
print(os.path.abspath(os.path.join(os.getcwd(), "..")))
print('***获取上上级目录***')
print(os.path.abspath(os.path.join(os.getcwd(), "../..")))
python latex处理
在线latex编辑: https://www.latexlive.com/
strip函数
print(A.strip()) # strip只能删除两端的换行符
split函数
print(A.strip().split()) # split可以在特定字符处切断字符串
join方法连接字符串
str = "-";
seq = ("a", "b", "c"); # 字符串序列
print(str.join( seq )); # 连接字符串
题干text文本相似度比较:SequenceMatcher.ratio()方法
SequenceMatcher.ratio()原理:匹配的是字母的序列(组),而不是单个字母
https://www.pythonheidong.com/blog/article/1021812/edaa8583b520a4d22b9e/
可哈希性hashable是什么?
可哈希意思就是,通过hash函数,能产生唯一的value与key对应,如果key改变,value也应该改变,但是可变的数据结构,比如列表,它改变后,列表地址是不变的,可以理解为:不同的key指向了相同的value(假设value是地址?),这就发生了冲突,所以说列表是不可哈希的。
字典的底层实现就是哈希表的原理——在字典中,我们希望"key"是可哈希的,也就是不可变的,实现对value的一对一访问,具体地:字典中[key:value],对key进行hash运算,得到哈希值,根据哈希值来访问value。
https://zhuanlan.zhihu.com/p/397840507
python 的 lambda函数
冒号前是变量,冒号后是函数功能
lambda x, y: xy;函数输入是x和y,输出是它们的积xy
https://www.cnblogs.com/wind666/p/10703064.html
Python比较文本相似度的7种方法
答案new_eqns公式分类模型
eqns_similarity
free_symbols——对于积分、微分运算,有一些符号是固定的,我们不能使用他们做为自定义变量
'list' object is not callable
原因:保留字作为变量被使用
(用visual studio code修改后,记得重启内核)
22.05.03周二
如何计算两个Graph的相似度?
MultiGraph库
add_edge:为图添加顶点连成的边
graph_edit_distance:动态规划之编辑距离
比较经典的度量方法包括:图同构,子图同构,最大共同子图,图编辑距离。
一文读懂Python复杂网络分析库networkx
https://baijiahao.baidu.com/s?id=1647867683487203382&wfr=spider&for=pc
python函数定义中,参数中的冒号和函数名后面的-> 是什么意思?
https://blog.csdn.net/automation666/article/details/123744446
例:def round(number: SupportsRound[Any]) -> int: ...
函数参数中的冒号是参数的类型建议符,告诉程序员希望传入的实参的类型。
函数后面跟着的箭头是函数返回值的类型建议符,用来说明该函数返回的值是什么类型。
故,这两个符号和后续内容仅仅起到描述性作用,可以删除。
js中let,var,const的区别
var 声明的变量属于函数作用域,let 和 const 声明的变量属于块级作用域;
var 存在变量提升现象,而 let 和 const 没有此类现象;
var 变量可以重复声明,而在同一个块级作用域,let 变量不能重新声明,const 变量不能修改。
块级作用域:使用一对大括号包裹的一段代码,比如函数、判断语句、循环语句,甚至单独的一个{}都可以被看作是一个块级作用域。
变量提升:
为什么react-fetch 访问接口,会返回一个html?
在react 3000端口向flask 7001端口get数据,返回的session是7001的,并不是3000的,所以后端返回的html实际上是登录检测失败后redirect的html
CORS是干什么的?
CORS,全称Cross-Origin Resource Sharing ,是一种允许当前域(domain)的资源(比如html/js/web service)被其他域(domain)的脚本请求访问的机制,通常由于同域安全策略(the same-origin security policy)浏览器会禁止这种跨域请求。
'Access-Control-Allow-Origin' header in the response must not be the wildcard '' when the request's credentials mode is 'include'.
若前端采用include方法,后端'Access-Control-Allow-Origin'必须指定一个具体的域名,而不能是'',
且,域名必须写成:
url_react_root = 'http://localhost:3000'
而不能写成:
url_react_root = 'localhost:3000'
22.05.04周三
如何在ReactDOM中遍历生成dom?
在react-map函数中使用return,必须保证返回值和return在同一行,否则不会返回值
如何在react渲染latex?
NPM安装MathJax?
https://segmentfault.com/q/1010000014796508
————npm mathjax
npm install react-mathjax
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
NPM安装Katex?
教程:https://www.mianshigee.com/project/react-katex
github:https://github.com/talyssonoc/react-katex
解决npm安装失败问题的方法:
采用该网站上的npm资源:https://www.npmjs.com/package/@matejmazur/react-katex
npm install @matejmazur/react-mathjax
npm install @matejmazur/react-katex
动态加载mathjax不生效问题
官网:http://docs.mathjax.org/en/latest/advanced/typeset.html
解决动态ajax/pjax加载mathjax不生效问题
https://baijiahao.baidu.com/s?id=1626094770186209937&wfr=spider&for=pc
动态加载 mathjax_关于使用MathJax
https://blog.csdn.net/weixin_40001048/article/details/111109336
react中script只能写在主html中吗?可否写在组件中?
react cdn方式引入script
22.05.05周四
今日目标
优化Similarity Classify Result模板(√)
创建similarity的sentence和phrase训练集(△)
新建知识点目录 API、知识点Q&A API(√)
SQL格式化助手
SQL格式化
https://www.w3cschool.cn/tools/index?name=sql_formatter
22.05.06周五
毕设论文
22.05.07周六
编写multiple接口
22.05.08周日
如何处理原型是Array(0)的对象?
类似疑问: https://developers.weixin.qq.com/community/develop/doc/000ee8072f8df8b965892da955b000
解决办法:组件渲染前不处理数据,组件渲染后才处理数据!