【fetch】浏览器默认请求方式

fetch 参数体:

    method: "POST", // *GET, POST, PUT, DELETE, etc.
    mode: "cors", // no-cors, *cors, same-origin
    cache: "no-cache", // *default, no-cache, reload, force-cache, only-if-cached
    credentials: "same-origin", // include, *same-origin, omit
    headers: {
      "Content-Type": "application/json",
      // 'Content-Type': 'application/x-www-form-urlencoded',
    },
    redirect: "follow", // manual, *follow, error
    referrerPolicy: "no-referrer", // no-referrer, *no-referrer-when-downgrade, origin, origin-when-cross-origin, same-origin, strict-origin, strict-origin-when-cross-origin, unsafe-url
    body: JSON.stringify(data), // body data type must match "Content-Type" header

fetch GET

fetch(`http://xxx/list?pageNo=1&pageSize=10`, {
        method: 'GET',
        headers: {
        Authorization: token.value
       }
     }).then(res => {
         return res.json()
     })

fetch POST

        fetch(`http://xxx/post`, {
          method: 'POST',
          headers: {
            Authorization: token.value,
            'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
          },
          body: `id=${id}&xxx={value}`
         }).then(res => {
          return res.json()
         })

fetch API 是 JavaScript 中用于发起网络请求的一个现代接口,支持浏览器和 Node.js 环境。对于跨域请求(CORS, Cross-Origin Resource Sharing),fetch默认情况下受到同源策略的限制,即只有当请求的域名、协议和端口与当前页面完全一致时,才会被浏览器允许。 如果需要向其他域发送请求,fetch 可能会遇到跨域问题。但是可以通过以下几种方法解决: 1. **设置 `credentials`**:可以在选项中设置 `fetch` 请求的 `credentials` 属性为 'include' 或者 'same-origin'。这允许发送 cookies,但只在 `HTTP/HTTPS` 协议下有效,并且可能会触发 CORS 头部。 ```javascript const options = { credentials: 'include', }; fetch(url, options); ``` 2. **服务端配置**:后端服务器可以添加 Access-Control-Allow-Origin、Access-Control-Allow-Methods 和 Access-Control-Allow-Headers 等 CORS 头部信息,允许指定的来源访问资源。 3. **JSONP**(JSON with Padding):对于 GET 请求,如果目标域支持 JSONP,可以通过动态创建 `<script>` 标签的方式绕过同源策略。 4. **CORS Preflight Request**:fetch 首次跨域请求前,会先发送一个 OPTIONS 请求(CORS Preflight)检查权限。如果允许,客户端再发送实际的请求。 ```javascript fetch(url, { method: 'POST', // 假设是 POST 方法 headers: { 'Content-Type': 'application/json', }, }) .then(response => response.json()) .catch(error => console.error('Error:', error)); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值