所以这似乎是一项简单的任务,但已花了一个多小时。我只想将变量传递给ajax头参数。由于某种原因,这导致了很多问题。我从服务器返回500错误,但如果我手动输入变量,一切都神奇地起作用。不确定是否一个基本规则我不理解,但有些事情是不对的。有人有任何想法吗?
以下是我的代码,我需要传递的变量是headertype
。
saveIncident: function () {
if (!confirm('Save?')) return
var requestType = '' != '' ? 'PUT' : 'POST';
var POST_Headers = '{"Accept": "application/json;odata=verbose"}';
var PUT_Headers = '{"Accept" : "application/json;odata=verbose","X-HTTP-Method':'MERGE","If-Match": item.__metadata.etag}';
var headertype = (requestType != 'POST') ? POST_Headers : PUT_Headers;
$.ajax({
url: this.createIncidentUrl(requestType),
type: requestType,
processData: false,
contentType: "application/json;odata=verbose",
headers: headertype,
data: JSON.stringify(IncidentManager.collectFieldValues()),
success: function (data) {
if (requestType == 'POST')
console.log(data.d);
}
});
},
答案 0 :(得分:2)
您传递给headers
的{{1}}值应该是对象,而不是字符串。
所以你需要在这里删除单引号:
$.ajax