小编典典

始终在jQuery Ajax的发布数据上调用JSON.stringify

ajax

或任何其他功能来预处理您的数据:)

由于我的服务器端框架,我总是需要在发送数据之前调用JSON.stringify-不必要的样板,您可以忘记添加。

现在我有:

$.ajax({
    [...]
    data: JSON.stringify({ someData: self.someData }),
    [...]
});

我更喜欢:

$.ajax({
    [...]
    data: { someData: self.someData },
    [...]
});

我研究过ajaxSetup,但到目前为止,找不到解决方案…


阅读 263

收藏
2020-07-26

共1个答案

小编典典

不,没有内置的方法可以将数据从对象预处理为JSON。但是,您可以使用ajaxSetupbeforeSend为您做。

$.ajaxSetup({
    beforeSend: function(jqXHR,options){
        if ( options.contentType == "application/json" && typeof options.data != "string" ) {
            options.data = JSON.stringify(options.data);
        }
    }
});

现在,只需确保将您的设置contentTypeapplication/json需要发送json到服务器的请求,以使它被if语句捕获。

2020-07-26