我有一个ajax post请求,需要以不带参数或键的数组[integer]格式发送一些数据。不幸的是,每当我尝试时,浏览器都会根据要求挂起。我在postman和swagger中取得了成功,但我无法弄清楚发送这个无钥匙阵列所需的数据格式。
这是我的要求:
$.ajax({
type: "POST",
url: "/endpoint?code=" + data,
data: [1],
success: function(response) {
console.log(response);
}.bind(this),
error: function(xhr, status, err) {
console.log(status + " " + err);
}.bind(this)
});
在我的Swagger文档中,以下作品
curl -X POST --header "Content-Type: application/json" --header "Accept: application/json" -d "[1]" "http://url/endpoint?code=testing"
在postman中,看起来表单数据将数组作为没有值的键发布。 我已经能够在浏览器中实现这一点,但仍然没有运气。
任何帮助将不胜感激,这似乎是一个简单的回答问题,但我似乎无法找到任何解决方案。
答案 0 :(得分:0)
尝试对数据进行字符串处理。发送" [1]"
答案 1 :(得分:0)
致电JSON.stringify
,并提供contentType
选项以指定该标头。
$.ajax({
type: "POST",
url: "/endpoint?code=" + data,
data: JSON.stringify([1]),
contentType: 'application/json',
dataType: 'json',
success: function(response) {
console.log(response);
}.bind(this),
error: function(xhr, status, err) {
console.log(status + " " + err);
}.bind(this)
});
BTW,您可以使用选项.bind(this)
自动传递,而不是在每个回调函数上使用context: this
。