我正在传递一个javascript数组Request.QueryString["cityID"].ToString(),但它显示"错误的参数"错误:
blObj.addOfficeOnlyDiffrent(Request.QueryString["cityID"].ToString(),
Request.QueryString["selectTxtOfficeAr"].ToString());
Run Code Online (Sandbox Code Playgroud)
方法声明如下:
public string addOfficeOnlyDiffrent(string[] cityID, string selectTxtOfficeAr) { }
Run Code Online (Sandbox Code Playgroud) 我想从前端的数据库中获取实体列表.所以我在Spring MVC中编写了POST REST HTTP调用.
但是我读了HTTP文档,它说无论何时你需要从数据库中检索数据都更喜欢GET调用.那么,是否有任何我可以从角度JS替换POST调用GET调用并传递整数列表.但是,GET HTTP有许多缺点,例如:URL的长度是有限的.考虑到我们必须从数据库中获取1000个实体的情况.
请建议我获取实体的可能方法或在Spring MVC中编写GET REST API以获取整数列表(指实体的ID).
例如:考虑书表中有100本书,但我只想要几本书,比如id:5,65,42,10,53,87,34,23.这就是我在POST调用中在整数列表中传递此Id列表的原因.
目前卡住了如何将其转换为GET调用.简而言之,如何通过GET REST调用传递整数列表.
我正在尝试发布FormData包括 aFile和 a Collection。
这是我的模型:
public class Content
{
public string Name { get; set; }
public string Link { get; set; }
}
public class Model
{
public IEnumerable<Content> Contents { get; set; }
public IFormFile File { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是我的操作:
[HttpPost]
public async Task InsertAsync([FromForm]Model dataPost)
{
await _services.Create(dataPost);
}
Run Code Online (Sandbox Code Playgroud)
我FormData在 JavaScript 中是:
const formData = new FormData();
formData.append("File", myFile, "image.jpg")
formData.append("Contents", arrayOfContent)
Run Code Online (Sandbox Code Playgroud)
这是header:
'Content-Type': `multipart/form-data`
Run Code Online (Sandbox Code Playgroud)
“文件”工作正常,但“内容”始终为空。 …
我想通过 http 标头传递一个数组。
将多个参数命名为相同的名称是否可以接受,这样我就知道它们属于一个数组,就像在 get 请求查询字符串中一样?例子:
CurrentHeaderArray: myarray[]=value1&myarray[]=value2&myarray[]=value3
Run Code Online (Sandbox Code Playgroud)
已经有一个 stackoverflow 答案可以通过 get 请求的查询字符串传递它,请参阅此超链接。 如何在查询字符串中传递数组?
预期的查询字符串:
http://fqdn/page?categoryID=1&categoryID=2
Run Code Online (Sandbox Code Playgroud)
axios 获取请求:
fetchNumbers () {
return axios.get(globalConfig.CATS_URL, {
params: {
...(this.category ? { categoryId: this.category } : {})
}
})
.then((resp) => {
// console.log(resp)
})
.catch((err) => {
console.log(err)
})
}
Run Code Online (Sandbox Code Playgroud)
如您所见,它可以完美地使用 1 个参数的 1 个值,但是如果我想创建多个值 - 它不起作用,我尝试使用数组:
...(this.category ? { categoryId: [1, 2] } : {})
Run Code Online (Sandbox Code Playgroud)
但它以这种方式返回:
http://fqdn/page?categoryID[]=1&categoryID[]=2
Run Code Online (Sandbox Code Playgroud)
所以它只是不工作。看看这个问题:使用 axios 在 GET 中将带有多个值的参数的对象作为查询字符串传递
但是想不通,他是怎么解决这个问题的。
c# ×2
javascript ×2
arrays ×1
asp.net ×1
asp.net-core ×1
axios ×1
header ×1
http ×1
http-headers ×1
json ×1
query-string ×1
rest ×1
spring-mvc ×1
vue.js ×1
web-services ×1