尝试对 .NET Web API 做一个比平均水平稍大的 AXIOS.post

Trying to do a slightly larger than average AXIOS.post to a .NET Web API

我正在尝试在 Vue.JS 应用程序中执行 AXIOS.post。似乎当我输入超过 1500 个字符时,该过程就会失败。我所说的失败的意思是它甚至没有访问 Web API。它直接进入错误区域。这通常是调用 .Net Web API 生成 MS Word 文档并将其传递回最终用户的函数。

      let pm = "1234567890,"

创建循环以添加 pm = pm + pm '200 次

let updatedData = {        
      memberID: 12345,
      pmids: pm             
  };

  axios({
    method: "post",
    url:         
     "http://localhost:54269/api/DataTable/PostValue",
    params: {
      value: JSON.stringify(updatedData)        
    },  responseType: 'blob' , 
     maxContentLength: Infinity,
     maxBodyLength: Infinity,
     headers: {
      'content-type': 'application/json',         
      'Accept': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
 }
  }).then(response =>{ 
    const url = window.URL.createObjectURL(new Blob([response.data]));
    const link = document.createElement('a');
    link.href = url;
    link.setAttribute('download', 'DataTable4_.docx');
    document.body.appendChild(link);
    link.click();
   }) 
  .catch(err => { 
      if( err.response ){
      console.log(err.response.data); 
   }
     if( err.message ){
      console.log("message:  " + err.message); 
   }   
  });      

} ,

一旦 PM 超过 1500,我就会收到错误消息

 POST http://localhost:54269/api/DataTable/PostValue?value=%7B%22memberID%22:12345,%22pmids%22:%2212345,23456,45678%22%7D 500 (Internal Server Error)
dispatchXhrRequest @ xhr.js?e38e:177
xhrAdapter @ xhr.js?e38e:13
dispatchRequest @ dispatchRequest.js?c09c:52
Promise.then (async)
request @ Axios.js?108a:61
wrap @ bind.js?784f:9
saveSwitchValue @ reporterAPI_Unique_PI.vue?5e84:382
create_word_doc_post @ reporterAPI_Unique_PI.vue?5e84:451
toolbarClick @ reporterAPI_Unique_PI.vue?5e84:816
Observer.notify @ observer.js?e8e3:99
Base.trigger @ base.js?3f78:181
GridComponent.trigger @ grid.component.js?9a24:85
Toolbar.toolbarClickHandler @ toolbar.js?3c15:337
Observer.notify @ observer.js?e8e3:99
Base.trigger @ base.js?3f78:181
Toolbar.clickHandler @ toolbar.js?4b00:573
reporterAPI_Unique_PI.vue?5e84:409 
Blob {size: 1151, type: 'application/json'}size: 1151type: "application/json"[[Prototype]]: BlobarrayBuffer: ƒ arrayBuffer()size: (...)slice: ƒ slice()stream: ƒ stream()text: ƒ text()type: (...)constructor: ƒ Blob()Symbol(Symbol.toStringTag): "Blob"get size: ƒ size()get type: ƒ type()[[Prototype]]: Object

我应该能够获取大量数据并使用 JSON.stringify 并将其发送到服务器,不是吗?我不是在谈论上传 Gig 数据甚至 Megs。如果有人知道一些高手培训material我愿意学习。我试过 Udemy 和 YouTube,但 99% 的 Axios 帖子都是小样本。或者是-我还检查了我的本地 IIS 服务器并将最大允许内容长度设置为 10737418241073741824

如果你想要

Public Function PostValue(ByVal value As String) As String 'HttpResponseMessage

测试字符串

您的问题是您试图将那个大的字符串化 JSON 对象作为 查询参数 传递。 IIS 的 url 长度硬上限为 2048 字节。

大型数据对象应作为请求正文的一部分传递,您要查找的 属性 是 data。查看 Axios 文档以获取更多信息。