手机版

详细解释React本机提取遇到的坑

时间:2021-08-30 来源:互联网 编辑:宝哥软件园 浏览:

最近,我在自学react native的过程中遇到了很多漏洞。下面将详细介绍登录功能的两个问题。

1.在请求数据时,我们通常会直接提交Content-type为json数据格式的请求。类似的

fetch(' https://miwebsite.com/endpoint/',{ method: 'POST ',header RS : { ' Accept ' : ' application/JSON ',' Content-Type ' : ' application/JSON ',},body : JSON . stringfy({ first param : ' your value ',secondparam3360 ' yourothervalue ',}))当我开始请求登录接口时,发现最后,我试图捕获这个包,却发现当我请求登录界面时,内容类型是application/x-www-form-urlcode,于是我搜索了这个知识。当我们提交表单时,表单参数中会有一个enctype参数。Enctype指定HTTP请求的内容类型。enctype=application/x-www-form-URL encoded默认为HTML表单。application/x-www-form-URL encode指的是表单的提交和对提交的数据进行URL编码。默认情况下,我们所有的表单都以这种默认方式提交。它记录在文档中:

fetch(' https://mwewebsite.com/endpoint/',{ method: 'POST ',header RS : { ' Content-Type ' : ' application/x-www-form-URL encoded ',},body : ' key 1=value 1key 2=value 2 ' } 2。如何在成功登录后获取标题中的sessionid?

登录成功后,我们可以打印出上面的响应。如果需要取出上面的sessionid,可以采用下面的方法。写作可能很低,但可以达到目的

//get sid var headers=response . headers . get(' set-cookie ');var header=headers . split(';');var sessionidfor(var索引=0;索引头. length;index ){ if(header[index]。indexOf(' JSESSIONID ')-1){ session id=header[index]。split('=')[1];} }//save async storage . setitem(' session id ',session id);3.登录成功后,后台需要根据sessionid判断登录状态。当请求的接口必须登录才能获取数据时,不能用传统的方式请求。当javascript使用fetch进行跨域请求时,默认情况下没有cookie,因此会话将无效。这就是为什么您需要在登录时添加字段credential 3360“include”。

fetch(Api.checkLoginSecurity,{ credentials: ' include ',method: 'POST ',Headers : { ' content-type ' : ' application/x-www-form-URL encoded ',},body : ' username=' this。props.username' password=' this。userpassword})还需要增加登录后可以获取数据的界面

Fetch (URL,{凭据:' include ',方法:' GET ',})这里,我们应该强调GET请求和POST请求。经过别人提醒,我们发现他虽然写了一个body={*},但我误以为他用的是post方法,其实body只是一个参数字段,实际上他用的是get请求。所以把POST改成GET(默认是GET,所以不需要写方法),因为GET不能在正文中传递参数,也不需要头,所以可以直接在URL中写参数,只有POST才能在正文中传递参数。

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:详细解释React本机提取遇到的坑是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。