将变量添加到ajax标头参数中

时间:2015-11-26 20:17:53

标签: javascript jquery ajax

所以这似乎是一项简单的任务,但已花了一个多小时。我只想将变量传递给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);   
            }
        });
},

1 个答案:

答案 0 :(得分:2)

您传递给headers的{​​{1}}值应该是对象,而不是字符串。

所以你需要在这里删除单引号:

$.ajax