<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[刘新修]]></title> 
<link>http://pic1.liuxinxiu.com:80/index.php</link> 
<description><![CDATA[刘新修的个人博客 (Liuxinxiu'S Blog)]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[刘新修]]></copyright>
<item>
<link>http://pic1.liuxinxiu.com:80/s//</link>
<title><![CDATA[vue中 fetch跨域请求]]></title> 
<author>刘新修 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[H5/JS/CSS]]></category>
<pubDate>Wed, 28 Aug 2019 05:52:43 +0000</pubDate> 
<guid>http://pic1.liuxinxiu.com:80/s//</guid> 
<description>
<![CDATA[ 
	<p>&nbsp;fetch 是原生javaScript提供的，它可以当作全局变量使用，挂载在window对象身上的</p><p style="box-sizing: border-box; outline: 0px; margin-bottom: 16px; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; word-wrap: break-word; font-variant-ligatures: common-ligatures;"><span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; font-weight: 700; word-wrap: break-word;"><mark style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; background-color: rgb(248, 248, 64); word-wrap: break-word;">fetch的get请求方法</mark></span></p><p style="box-sizing: border-box; outline: 0px; margin-bottom: 16px; font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: 16px; color: rgb(77, 77, 77); line-height: 26px; word-wrap: break-word; font-variant-ligatures: common-ligatures;">简单基本的fetch请求（get）</p><div class="codeText"><div class="codeHead">XML/HTML代码</div><ol start="1" class="dp-xml"><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;app&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">button</span><span>&nbsp;@</span><span class="attribute">click</span><span>=</span><span class="attribute-value">&quot;getData&quot;</span><span class="tag">&gt;</span><span>get请求</span><span class="tag">&lt;/</span><span class="tag-name">button</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">script</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li><li><span>是原生javaScript提供的，它可以当作全局变量使用，挂载在window对象身上的&nbsp;&nbsp;</span></li><li class="alt"><span>new&nbsp;Vue(&#123;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;fetch&nbsp;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;el:&quot;#app&quot;,&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;methods:&#123;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getData()&#123;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;var&nbsp;<span class="attribute">p</span><span>=</span><span class="attribute-value">fetch</span><span>();&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;console.log(p)//fetch方法也是promise对象&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fetch('./data/name.json')&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.then(&nbsp;(res)&nbsp;=<span class="tag">&gt;</span><span>&nbsp;&#123;&nbsp;&nbsp;return&nbsp;res.json()&nbsp;&#125;&nbsp;)//对fetch进行格式化，否则读取不到内容&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.then(&nbsp;(data)&nbsp;=<span class="tag">&gt;</span><span>&nbsp;&#123;&nbsp;console.log(data)&#125;&nbsp;)//拿到格式化后的数据data&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.catch(<span class="attribute">error</span><span>=</span><span class="tag">&gt;</span><span>console.log(error))&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;,&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;,&nbsp;&nbsp;</span></li><li class="alt"><span>&#125;)&nbsp;&nbsp;&nbsp;</span></li></ol></div><p style="box-sizing: border-box; outline: 0px; margin-bottom: 16px; line-height: 26px; word-wrap: break-word;"><font color="#4d4d4d" face="Microsoft YaHei, SF Pro Display, Roboto, Noto, Arial, PingFang SC, sans-serif"><span style="font-size: 16px; font-variant-ligatures: common-ligatures;">注意事项：</span></font></p><p style="box-sizing: border-box; outline: 0px; margin-bottom: 16px; line-height: 26px; word-wrap: break-word;"><font color="#4d4d4d" face="Microsoft YaHei, SF Pro Display, Roboto, Noto, Arial, PingFang SC, sans-serif"><span style="font-size: 16px; font-variant-ligatures: common-ligatures;"><br /></span></font></p><p style="box-sizing: border-box; outline: 0px; margin-bottom: 16px; line-height: 26px; word-wrap: break-word;"><font color="#4d4d4d" face="Microsoft YaHei, SF Pro Display, Roboto, Noto, Arial, PingFang SC, sans-serif"><span style="font-size: 16px; font-variant-ligatures: common-ligatures;">A: fetch 的 get 请求的参数是直接连接在url上的， 我们可以使用Node.js提供的url或是qureystring模块来将</span></font></p><p style="box-sizing: border-box; outline: 0px; margin-bottom: 16px; line-height: 26px; word-wrap: break-word;"><font color="#4d4d4d" face="Microsoft YaHei, SF Pro Display, Roboto, Noto, Arial, PingFang SC, sans-serif"><span style="font-size: 16px; font-variant-ligatures: common-ligatures;">&nbsp; Object --&gt; String</span></font></p><p style="box-sizing: border-box; outline: 0px; margin-bottom: 16px; line-height: 26px; word-wrap: break-word;"><font color="#4d4d4d" face="Microsoft YaHei, SF Pro Display, Roboto, Noto, Arial, PingFang SC, sans-serif"><span style="font-size: 16px; font-variant-ligatures: common-ligatures;">B: fetch 的请求返回的是Promise对象，所以我们可以使用.then().catch(),但是要记住.then()至少要写两个， 第一个then是用来格式</span></font></p><div class="codeText"><div class="codeHead">XML/HTML代码</div><ol start="1" class="dp-xml"><li class="alt"><span><span>格式化处理的其他方式&nbsp;&nbsp;</span></span></li><li><span>fetch('./data.json')&nbsp;&nbsp;</span></li><li class="alt"><span>.then(<span class="attribute">res</span><span>=</span><span class="tag">&gt;</span><span>&#123;&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;res.json()&nbsp;//格式化json数据&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;//res.text()格式胡文本数据&nbsp;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;//res.blob()==格式化二进制文件==&nbsp;&nbsp;</span></li><li class="alt"><span>&#125;)&nbsp;&nbsp;</span></li><li><span>.then(&nbsp;<span class="attribute">data</span><span>&nbsp;=</span><span class="tag">&gt;</span><span>&nbsp;console.log(data))&nbsp;&nbsp;</span></span></li><li class="alt"><span>.catch(&nbsp;<span class="attribute">error</span><span>&nbsp;=</span><span class="tag">&gt;</span><span>&nbsp;console.log(&nbsp;error&nbsp;))&nbsp;&nbsp;</span></span></li></ol></div><p style="box-sizing: border-box; outline: 0px; margin-bottom: 16px; line-height: 26px; word-wrap: break-word;"><span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; font-weight: 700; word-wrap: break-word; color: rgb(77, 77, 77); font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: 16px; font-variant-ligatures: common-ligatures;"><mark style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; background-color: rgb(248, 248, 64); word-wrap: break-word;">fetch的post请求方法</mark></span><br style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; word-wrap: break-word; color: rgb(77, 77, 77); font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: 16px; font-variant-ligatures: common-ligatures;" /><span style="color: rgb(77, 77, 77); font-family: &quot;Microsoft YaHei&quot;, &quot;SF Pro Display&quot;, Roboto, Noto, Arial, &quot;PingFang SC&quot;, sans-serif; font-size: 16px; font-variant-ligatures: common-ligatures;">代码示例</span></p><div class="codeText"><div class="codeHead">XML/HTML代码</div><ol start="1" class="dp-xml"><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;app&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">button</span><span>&nbsp;@</span><span class="attribute">click</span><span>=</span><span class="attribute-value">&quot;postData&quot;</span><span class="tag">&gt;</span><span>post请求</span><span class="tag">&lt;/</span><span class="tag-name">button</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li><span><span class="tag">&lt;</span><span class="tag-name">script</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>new&nbsp;Vue(&#123;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;fetch&nbsp;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;el:&quot;#app&quot;,&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;methods:&#123;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;postData()&#123;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fetch('http://10.31.161.60:8080',&#123;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method:'post',&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hearders:new&nbsp;Headers(&#123;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置请求头，解决跨域问题&nbsp;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'Content-Type':'application/x-www-form-urlencoded'&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;),&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//解决请求数据类型限制的问题&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;body:new&nbsp;URLSearchParams([[&quot;a&quot;,&nbsp;1],[&quot;b&quot;,&nbsp;2]]).toString()&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;)&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.then(&nbsp;<span class="attribute">res</span><span>&nbsp;=</span><span class="tag">&gt;</span><span>&nbsp;res.text()&nbsp;)&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.then(&nbsp;<span class="attribute">data</span><span>&nbsp;=</span><span class="tag">&gt;</span><span>&nbsp;console.log(&nbsp;data&nbsp;))&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.catch(&nbsp;<span class="attribute">error</span><span>&nbsp;=</span><span class="tag">&gt;</span><span>&nbsp;console.log(&nbsp;error&nbsp;))&nbsp;&nbsp;</span></span></li><li><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;&nbsp;&nbsp;</span></li><li><span>&nbsp;&nbsp;&nbsp;&nbsp;&#125;,&nbsp;&nbsp;</span></li><li class="alt"><span>&#125;)&nbsp;&nbsp;</span></li></ol></div><p style="box-sizing: border-box; outline: 0px; margin-bottom: 16px; line-height: 26px; word-wrap: break-word;">总结</p><p style="box-sizing: border-box; outline: 0px; margin-bottom: 16px; line-height: 26px; word-wrap: break-word;">fetch要手动进行一次数据格式化，但是axios是内部进行了数据的格式化</p><p style="box-sizing: border-box; outline: 0px; margin-bottom: 16px; line-height: 26px; word-wrap: break-word;">fetch get 方法请求数据，参数要直接连接在url上</p><p style="box-sizing: border-box; outline: 0px; margin-bottom: 16px; line-height: 26px; word-wrap: break-word;">fetch 格式化数据 有三种 处理方法</p><p style="box-sizing: border-box; outline: 0px; margin-bottom: 16px; line-height: 26px; word-wrap: break-word;">.json() 格式化 json 类型数据， 将 json类型 string 转换成 json 对象</p><p style="box-sizing: border-box; outline: 0px; margin-bottom: 16px; line-height: 26px; word-wrap: break-word;">.text() 格式化文本</p><p style="box-sizing: border-box; outline: 0px; margin-bottom: 16px; line-height: 26px; word-wrap: break-word;">.blob() 格式化二进制数据</p><p style="box-sizing: border-box; outline: 0px; margin-bottom: 16px; line-height: 26px; word-wrap: break-word;">fetch 书写post请求、处理</p><p style="box-sizing: border-box; outline: 0px; margin-bottom: 16px; line-height: 26px; word-wrap: break-word;">设置请求头</p><p style="box-sizing: border-box; outline: 0px; margin-bottom: 16px; line-height: 26px; word-wrap: break-word;">通过 new URLSearchPrams 来携带参数</p>
]]>
</description>
</item><item>
<link>http://pic1.liuxinxiu.com:80/s//#blogcomment</link>
<title><![CDATA[[评论] vue中 fetch跨域请求]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://pic1.liuxinxiu.com:80/s//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>