在Jquery AJAX中发布JSON数据和id

时间:2014-03-14 04:53:07

标签: javascript jquery ajax cordova

我正在尝试通过Jquery AJAX帖子发布JSON数据和2个ID。但我无法做到。

以下是我的代码:

try {
    var surveyID= localStorage.getItem("surveyId");
    var userDetails = jQuery.parseJSON(localStorage.getItem("userdetails"));
    var providerKey = userDetails["ProviderUserKey"];
    var dataValue = { "str": StringJson};
    var url = APP_URL+"EditSurvey?";
    var param = "SurveyId="+surveyID+"&JSONData="+JSON.stringify(dataValue)+"&UserId="+providerKey;

    $.ajax({
        type: "POST",
        contentType: "application/json",
        url: url,
           data: param,
           async:true,
        success: function (data) {

            alert('sucess');


            //}

        },  
        error: function (err) {
            alert("Err : " + err.error);
        },

    });
} catch (error) {
     alert(error);
}

我在Safari中调试时遇到以下错误:

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

在模拟器中我收到以下错误:

enter image description here

我哪里出错了?我该如何解决这个问题?我必须为帖子

提供3个参数
  • surveyID
  • JSON数据
  • 用户ID

编辑:

现在更改了Web服务,并将所有3个参数 - 即2个ID和一个完整的json数据传递给Web服务。仍然jquery ajax帖子不起作用。请参阅下面的代码:

 var surveyID= localStorage.getItem("surveyId");
    var userDetails = jQuery.parseJSON(localStorage.getItem("userdetails"));
    var providerKey = userDetails["ProviderUserKey"];
    var dataValue = {"surveyID":surveyID, "userID":providerKey, "str": StringJson};
    alert(dataValue);
    var url = APP_URL+"EditSurvey";
    var param = dataValue;
    $.ajax({
           type: 'POST',
           contentType: "application/json",
           url: url,
           data: dataValue,
           success: function (data) {

           alert('sucess');


           //}

           },
           error: function (err) {
           alert("Err : " + err.text);
           },

           });
编辑

以包含stringJson:

var StringJson = JSON.stringify(MainJSON);
 alert(StringJson);

enter image description here

2 个答案:

答案 0 :(得分:0)

检查传递的最终json是否具有服务器预期的确切格式。

尝试给予:

contentType:' application / json', 接受:' application / json'

看看它是否有帮助。

答案 1 :(得分:0)

尝试这个

 formData = {
        // all your parameters here
        param1: param1,
        JSONData: formToJSON(),
        UserId: providerKey
    }
    $.ajax({
        type: 'POST',
        contentType: 'application/json',
        url: url,
        dataType: "json",
        data: formData,
        success: function(data) {
            //success handling
        },
        error: function(data) {
            alert("Err : " + err.error);
        }
    });

function formToJSON() {
    return JSON.stringify({
        dataValue: dataValue
    });
}