fromdata传递数据

发布于 2022-09-06 09:02:44 字数 1421 浏览 22 评论 0

请求中使用参数用form-data的形式:

  var content = new window.FormData();
  content.append("id", this.id);
  content.append("name", this.name);
      this.$http.post("test", content)
      .then(function (data) {
        if(data.status === 200 && data.ok === true){
          this.tipsmessage = '保存成功'
          this.success = true
        }else{
          this.tipsmessage = '保存失败'
          this.success = false
        }
      })
      .catch(
          function (data) {
           console.log('请求出错')
        }
      )

页面传递参数效果:
图片描述

为什么传递格式不是这样呢?

图片描述


根据大家的回答,我做了修改:

this.$http({
      url: 'test',
      method: 'POST',
      data: content,
      headers: {
          'Content-Type': 'application/x-www-from-urlencoded'
      }
  })

结果:
图片描述

content-type已经修改成application/x-www-from-urlencoded这个格式了,但是没有显示传递的参数,为什么呢?
图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

清风夜微凉 2022-09-13 09:02:44

content-type 设置跟在数据后面

            //路径   // 参数 // 头设置请求文本类型
    axios.post(url',params,{
        headers: {
          'Content-Type': 'application/x-www-form-urlencoded'
        }
    })

key:value格式 可以利用new URLSearchParams()方法 然后追加 append元素

json格式 那就 声明拼接 对象值太多转换JSON.stringify()

戏剧牡丹亭 2022-09-13 09:02:44

你两种content-type不同
你所说的formdata是multipart/form-data,可以附带文件,以流形式发送
你最后一张图上列的请求方式是application/x-www-from-urlencoded,会将参数以kv形式发送,这个才是标准的表单类型

微暖i 2022-09-13 09:02:44

没有怎么用过vue,但是看帮助文档感觉应该是这样的,你可以试试

this.$http.post('test', {id: this.id, name: this.name}, {'emulateJSON': true})

https://github.com/pagekit/vu...

顾冷 2022-09-13 09:02:44

this.$http.post("test", {id:xx})

你想key,value传递直接这样就行了。不需要创建formdata对象。
如果你需要上传文件,那就是选择formData在chrome中的显示效果。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文