• fetch函数的使用-常见问题


    fetch的使用:

    总体格式:

    Fetch(‘url’,

    {

    mode: ‘cors’,

    method: ’POST’,

    headers: {

             ‘Content-type’ : ‘application/x-www-form-urlencoded; charset=UTF-8’,【需要指定】

    },

    Body: JSON.stringify({a: '1000'}),

    },).then();

            

    在这里验证了前后台传输的实质是JSON格式的字符串。

    注意点:’Content-Type’:form编码格式 只有三种类型

    ① text/plain(默认):窗体数据纯文本形式
    ②application/x-www-form-urlencoded和multipart/form-data(窗体数据被编码为名称/值对,ajax中可以不用强制选择,会智能帮我选择编码方式,在这里需要制定编码方式)

    ③multipart/form-data  浏览器会把整个表单以控件为单位分割

    其中使用fetch前后端通信遇到的主要是他的跨域问题,和恕我学习c#时间不长遇到的坑。

    在这里我就分享我的遇到问题和解决方案:

    (1)fetch请求415 Unsupported Media Type问题【见图】:这里我们只需要修改编码类型即可

    'Content-type': 'application/x-www-form-urlencoded; charset=UTF-8',

    (2)401 Unauthorized:没有访问权限。这里做法是部署到IIS上然后开启匿名访问即可。

    注意network(每次重新部署都需要重新重新开启匿名访问)

     

    仍然在控制台下会输出

    但核心还不是跨域问题。再看一下跨域问题。

    (3)405 Method Not Allowed 跨域访问:(造成原因:在react服务下localhost:3000访问其他服务)

    控制台还是输出

    发现没有Code State 有时候反应出的问题更准确。

    这里针对webapi跨域问题给出解决方案:推荐链接

    http://www.cnblogs.com/landeanfen/p/5177176.html

  • 相关阅读:
    [程序员代码面试指南]栈和队列-单调栈结构(单调栈)
    快学Scala第一部分
    Add Digits
    Nim Game
    将分布式中多台节点的日志信息集中到一个节点上
    Eclipse调试的一些小技巧
    Maven的常用命令
    Eclipse插件本地扩展安装
    Spark应用程序的运行框架
    Spark运行各个时间段的解释
  • 原文地址:https://www.cnblogs.com/zhongqiang/p/7118966.html
Copyright © 2020-2023  润新知