尝试对 .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 文档以获取更多信息。
我正在尝试在 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
如果你想要
测试字符串
您的问题是您试图将那个大的字符串化 JSON 对象作为 查询参数 传递。 IIS 的 url 长度硬上限为 2048 字节。
大型数据对象应作为请求正文的一部分传递,您要查找的 属性 是 data
。查看 Axios 文档以获取更多信息。