使用Javascript $ ajax(设置)发布数据

时间:2016-03-24 05:06:15

标签: javascript ajax post

要求:使用Javascript我必须做一个"发布"。我还需要传递2个输入。一个是'查询'参数类型的数据类型'长'另一个是'身体'参数类型的数据类型'数组[长]'。

代码:

<script type="text/javascript">
$(function() {
    var params = {
        // Request parameters
    };

    $.ajax({
       url: "https://api.XXXX.com.au/XXXX/api/V1/XXXXX/some_webservice?param1= 5637161343",

        beforeSend: function(xhrObj){
            // Request headers
           xhrObj.setRequestHeader("ContentType","application/json;charset=utf-8");

        type: "POST",

        // Request body
       data:{Param2:[5637151026]}



    })
    .done(function(data) {
        alert("success");
    })
    .fail(function() {
        alert("error");
    });
});

问题:无法发帖。我认为我的错误是&#39; body参数&#39;

我请求你的帮助来解决这个问题!谢谢

2 个答案:

答案 0 :(得分:0)

当ajax调用的查询参数保持不变时,某些浏览器将从缓存返回先前的响应。因此,为了防止这种情况,请在ajax调用中添加伪参数,该调用将在每个ajax请求中更改。像这样:

<script type="text/javascript">
$(function() {
    var params = {
        // Request parameters
    };

    $.ajax({
       url: "https://api.XXXX.com.au/XXXX/api/V1/XXXXX/some_webservice?param1= 5637161343",
        cache : false,
        beforeSend: function(xhrObj){
            // Request headers
           xhrObj.setRequestHeader("ContentType","application/json;charset=utf-8");

        type: "POST",

        // Request body
       data:{Param2:[5637151026], extraParam : Math.random() }



    })
    .done(function(data) {
        alert("success");
    })
    .fail(function() {
        alert("error");
    });
});

这里由于Math.random()浏览器不会给出缓存响应。因为每次extraParam的值都不同。我还添加了cache : false。这是jQuery的默认功能,以防止缓存。

答案 1 :(得分:0)

解决了问题。问题与我绑定请求体的方式有关 -

$(function() {
var params = {
    // Request parameters
};var info=[5637151026];$.ajax({
   url: "https://api.XXXX.com.au/XXXX/api/V1/XXXXX/some_webservice?param1= 5637161343",
    beforeSend: function(xhrObj){
        // Request headers
       xhrObj.setRequestHeader("ContentType","application/json;charset=utf-8");dataType:"json",type: "POST",
    data: JSON.stringify(info)


})
.done(function(data) {
    alert("success");
})
.fail(function() {
    alert("error");
});});