【问题标题】:How would you make this post request [closed]你将如何提出这个帖子请求[关闭]
【发布时间】:2021-01-02 05:07:51
【问题描述】:

考虑到文档向您展示了这一点,您将如何提出此发布请求

POST /cf HTTP/1.1
Host: apis.woptima.com
Content-Type: application/json

{
    "name": "franco",
    "surname": "Baldi",
    "gender": "M",
    "day": 22,
    "month": 12,
    "year": 1980,
    "city": "Roma",
    "province": "RM"
}

我尝试了我的方法,但没有成功,我得到 validationError 422

fetch("https://cors-anywhere.herokuapp.com/https://apis.woptima.com/cf", {
      headers: {
        Accept: "application/json",
        "Content-Type": "application/json",
      },
      method: POST,
                  // I also tried with the body object, didn't work
      name: "franco",
      surname: "Baldi",
      gender: "M",
      day: 22,
      month: 12,
      year: 1980,
      city: "Roma",
      province: "RM",
    })
      .then(function (response) {
        return response.json()
      })
      .then(function (data) {
        console.log(data)
      })
  }

如果你能帮助我,我将不胜感激

【问题讨论】:

  • method: POST, ==> method: "POST",
  • 您应该始终打开开发者工具并检查 console 选项卡是否有错误
  • 我会试试阿隆谢谢
  • 我现在收到此错误 Access to fetch at 'apis.woptima.com/cf' from origin 'prolocofraine.netlify.app' 已被 CORS 策略阻止:对预检请求的响应没有' t 通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源

标签: javascript post promise fetch


【解决方案1】:

首先你有一个错字,你必须附上 POST --> method="POST"

该错误表示服务器不理解您引用 mozilla 开发者文档的内容类型

超文本传输​​协议(HTTP)422 Unprocessable Entity响应状态码表示服务器理解请求实体的内容类型,请求实体的语法正确,但无法处理包含的指令

您也可以使用 async / await,如下例所示

async function addData(){

      const name: "franco",
      const surname: "Baldi",
      const gender: "M",
      const day: 22,
      const month: 12,
      const year: 1980,
      const city: "Roma",
      const province: "RM",
    
   
        const data = {name, surname, gender, day, month, year, city, province};
        const options = {
            method: 'POST',
            headers: {
                "Content-Type": "application/json",
            },
            // here you parse your data as string before sending
            body: JSON.stringify(data)
        };
        await fetch('https://cors-anywhere.herokuapp.com/https://apis.woptima.com/cf', options); 
    }

您可以在要添加此数据的地方调用此函数。

【讨论】:

  • ``` var myHeaders = new Headers(); myHeaders.append("Content-Type", "application/json"); var raw = JSON.stringify({"name":"franco","surname":"Baldi","gender":"M","day":22,"month":12,"year":1980, “城市”:“罗马”,“省”:“RM”}); var requestOptions = { 方法:'POST',标头:myHeaders,正文:原始,重定向:'follow' }; fetch("apis.woptima.com/cf", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error )); ```
  • 不客气 :) 这段代码是什么意思?
  • 这是我从 POSTMAN 那里得到的,它可能也很有用。评论不是发送这些的地方:)
  • 我现在收到此错误 Access to fetch at 'apis.woptima.com/cf' from origin 'prolocofraine.netlify.app' 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源
  • 这篇文章的第一个答案可能会有所帮助stackoverflow.com/questions/20035101/… 原因可能是您向另一个域发出了帖子请求,该请求将被阻止
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-17
  • 1970-01-01
  • 2018-04-17
  • 2019-11-19
  • 1970-01-01
  • 1970-01-01
  • 2016-03-11
相关资源
最近更新 更多