刘月兰 發表於 2020-7-30 11:57:00

Uni-app网络请求---uni.request

<h3 id="request">uni.request(OBJECT)</h3>
<p>发起网络请求。</p>
<p>OBJECT 参数说明</p>
<table style="height: 477px; width: 1154px">
<thead>
<tr><th style="text-align: center">参数名</th><th>类型</th><th>必填</th><th>默认值</th><th>说明</th><th>平台差异说明</th></tr>
</thead>
<tbody>
<tr>
<td>url</td>
<td>String</td>
<td>是</td>
<td>&nbsp;</td>
<td>开发者服务器接口地址</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>data</td>
<td>Object/String/ArrayBuffer</td>
<td>否</td>
<td>&nbsp;</td>
<td>请求的参数</td>
<td>App(自定义组件编译模式)不支持ArrayBuffer类型</td>
</tr>
<tr>
<td>header</td>
<td>Object</td>
<td>否</td>
<td>&nbsp;</td>
<td>设置请求的 header,header 中不能设置 Referer。</td>
<td>H5端会自动带上cookie不可手动覆盖</td>
</tr>
<tr>
<td>method</td>
<td>String</td>
<td>否</td>
<td>GET</td>
<td>有效值详见下方说明</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>timeout</td>
<td>Number</td>
<td>否</td>
<td>30000</td>
<td>超时时间,单位 ms</td>
<td>微信小程序(2.10.0)、支付宝小程序</td>
</tr>
<tr>
<td>dataType</td>
<td>String</td>
<td>否</td>
<td>json</td>
<td>如果设为 json,会尝试对返回的数据做一次 JSON.parse</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>responseType</td>
<td>String</td>
<td>否</td>
<td>text</td>
<td>设置响应的数据类型。合法值:text、arraybuffer</td>
<td>App和支付宝小程序不支持</td>
</tr>
<tr>
<td>sslVerify</td>
<td>Boolean</td>
<td>否</td>
<td>true</td>
<td>验证 ssl 证书</td>
<td>仅App安卓端支持(HBuilderX 2.3.3+)</td>
</tr>
<tr>
<td>withCredentials</td>
<td>Boolean</td>
<td>否</td>
<td>false</td>
<td>跨域请求时是否携带凭证(cookies)</td>
<td>仅H5支持(HBuilderX 2.6.15+)</td>
</tr>
<tr>
<td>firstIpv4</td>
<td>Boolean</td>
<td>否</td>
<td>false</td>
<td>DNS解析时优先使用ipv4</td>
<td>仅 App-Android 支持 (HBuilderX 2.8.0+)</td>
</tr>
<tr>
<td>success</td>
<td>Function</td>
<td>否</td>
<td>&nbsp;</td>
<td>收到开发者服务器成功返回的回调函数</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>fail</td>
<td>Function</td>
<td>否</td>
<td>&nbsp;</td>
<td>接口调用失败的回调函数</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>complete</td>
<td>Function</td>
<td>否</td>
<td>&nbsp;</td>
<td>接口调用结束的回调函数(调用成功、失败都会执行)</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
<p style="text-align: left">&nbsp;</p>
<p style="text-align: left"><img src="https://img2020.cnblogs.com/blog/2100230/202007/2100230-20200730112245810-455690455.png" alt="" loading="lazy"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>success 返回参数说明</p>
<table>
<thead>
<tr><th>参数</th><th>类型</th><th>说明</th></tr>
</thead>
<tbody>
<tr>
<td>data</td>
<td>Object/String/ArrayBuffer</td>
<td>开发者服务器返回的数据</td>
</tr>
<tr>
<td>statusCode</td>
<td>Number</td>
<td>开发者服务器返回的 HTTP 状态码</td>
</tr>
<tr>
<td>header</td>
<td>Object</td>
<td>开发者服务器返回的 HTTP Response Header</td>
</tr>
</tbody>
</table>
<p>data 数据说明</p>
<p>最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String。转换规则如下:</p>
<ul>
<li>对于&nbsp;<code>GET</code>&nbsp;方法,会将数据转换为 query string。例如&nbsp;<code>{ name: 'name', age: 18 }</code>&nbsp;转换后的结果是&nbsp;<code>name=name&amp;age=18</code>。</li>
<li>对于&nbsp;<code>POST</code>&nbsp;方法且&nbsp;<code>header['content-type']</code>&nbsp;为&nbsp;<code>application/json</code>&nbsp;的数据,会进行 JSON 序列化。</li>
<li>对于&nbsp;<code>POST</code>&nbsp;方法且&nbsp;<code>header['content-type']</code>&nbsp;为&nbsp;<code>application/x-www-form-urlencoded</code>&nbsp;的数据,会将数据转换为 query string。</li>
</ul>
<p>示例</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">uni.request({
    url: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">https://www.example.com/request</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">仅为示例,并非真实接口地址。</span>
<span style="color: rgba(0, 0, 0, 1)">    data: {
      text: </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">uni.request</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
    },
    header: {
      </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">custom-header</span><span style="color: rgba(128, 0, 0, 1)">'</span>: <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">hello</span><span style="color: rgba(128, 0, 0, 1)">'</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">自定义请求头信息</span>
<span style="color: rgba(0, 0, 0, 1)">    },
    success: (res) </span>=&gt;<span style="color: rgba(0, 0, 0, 1)"> {
      console.log(res.data);
      </span><span style="color: rgba(0, 0, 255, 1)">this</span>.text = <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">request success</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
    }
});</span></pre>
</div>
<p>&nbsp;</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">config: {
      baseUrl: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">https://www.baidu.com/</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
      header: {
            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Content-Type</span><span style="color: rgba(128, 0, 0, 1)">'</span>: <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">application/json;charset=UTF-8</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
            </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Content-Type</span><span style="color: rgba(128, 0, 0, 1)">'</span>: <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">application/x-www-form-urlencoded</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
      },
      data: {},
      method: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">GET</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
      dataType: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">json</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
      </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)"> 如设为json,会对返回的数据做一次 JSON.parse </span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
      responseType: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">text</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
      success() {},
      fail() {},
      complete() {}
    },</span></pre>
</div>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    人生很漫长,或许我只是你人生中微不足道的一小段,只是你人生中的惊鸿一瞥。<br><br>
来源:https://www.cnblogs.com/caijinghong/p/13402988.html
頁: [1]
查看完整版本: Uni-app网络请求---uni.request