【问题标题】:$http POST fails in AngularJS, succeeds in google REST client$http POST 在 AngularJS 中失败,在 google REST 客户端中成功
【发布时间】:2015-11-13 09:07:58
【问题描述】:

我有以下代码:

updatelist = 
[
{
parser: {
delimiter: "",
parser_name: "History Record",
id: 3675,
isEnabled: "Y",
isFixedWidth: "N",
parsertype: "Table",
postprocessing: ""
},
parserdetail: [
{
ColumnName: "",
ColumnWidth: 0,
Delimiter: "", 
EOL: "Y", 
KeySignature:"Boot History Record", 
KeySignaturePosition: "Left",
OrderNum: 1,
ParserSection: "header",
TagName: "",
ValueType: ""
},

{
ColumnName: "S.No.",
ColumnWidth: 4,
Delimiter: "", 
EOL: "Y", 
KeySignature:"", 
KeySignaturePosition: "",
OrderNum: 1,
ParserSection: "body",
TagName: "SNumber",
ValueType: "nums"
}
]
}
]

$http({
    method: 'POST',
    url: "https://myurl/parserrulesupdate",
    data: $.param(updateList),
    headers: {'Content-Type': 'application/x-www-form-urlencoded'},
    responseType: 'json'
})
.then(function(response) {
    returnData.resolve(response.data);  // returns list of ids
})
.catch(function(response) {
   console.error('POST error', response.status, response.data);
   returnData.reject();
})            

上述 http 调用失败,响应为 500

但是,如果我通过 Google REST 客户端使用相同的数据执行相同的 POST,它会成功。在这一点上,我正在挠头。如果您能解释为什么会这样,我将不胜感激。

【问题讨论】:

  • 500 表示服务器错误。您能否调试并检查两种情况下在服务器端获得的参数?

标签: javascript json angularjs http-post


【解决方案1】:

我不知道您的服务器端代码,尤其是输入对象,但我认为问题可能出在此处:

data: $.param(updateList)

尝试像这样直接传递对象:

data: updateList

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    相关资源
    最近更新 更多