Ajax数据方法

时间:2016-05-26 00:11:59

标签: javascript jquery json ajax http

我有一个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中,看起来表单数据将数组作为没有值的键发布。 我已经能够在浏览器中实现这一点,但仍然没有运气。

任何帮助将不胜感激,这似乎是一个简单的回答问题,但我似乎无法找到任何解决方案。

2 个答案:

答案 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