使用JQuery发布JSON并设置HTTP内容类型为'application/json'

11

我正在使用jQuery向服务器发送JSON数据。然而当我像下面这样进行POST请求时,

    $.ajax({
                type        :   'POST'  ,
                url         :   uri,
                data        :   jsonStrJson,
                contentType :   'application/json',
                success     :   successFunction
        });

即使我提交的是一个json对象,但http请求头的内容类型不是“application/json”。

由于不是“application/json”,服务器无法处理该请求并返回415错误。

是否可以使用JavaScript或jQuery API设置标题?


7
contentTYpe 翻译为 contentType - Jason P
2
非常感谢 @JasonP 的敏锐眼力,我错过了它。 - Miller
感激不尽。非常感谢,我发帖是因为我没有理解Jquery API for AJAX。这是我的错。谢谢Jason。 - linux developer
3个回答

25

你能试一下这个吗?

$.ajax({
    beforeSend: function(xhrObj){
        xhrObj.setRequestHeader("Content-Type","application/json");
        xhrObj.setRequestHeader("Accept","application/json");
    },
    type: "POST",
    url: uri,       
    data: jsonStrJson,               
    dataType: "json",
    success: function(json){
       console.log(json);
    }
});

5
"

"contentTYpe"应改为"contentType",这也应该能解决问题。 ;)

"

0

另外,关于设置HTTP请求头参数,你可以尝试这种方法:

$.ajax({
       type        :   'POST'  ,
       url         :   uri,
       data        :   jsonStrJson,
       headers     : { 'Content-Type': 'application/json' }, //this line
       success     :   successFunction
        });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接