向服务器发出AJAX请求时出错代码415

时间:2014-07-17 11:32:23

标签: javascript extjs

我正在向服务器上的端点发送Ajax请求:

Nothing bookSoldOut(boolean sold,
                    List<Long> books)
                        throws ErrorResponseException

...我期待参数:soldbooks

在我的ExtJS控制器中,我在一个函数中调用如下:

Ext.Ajax.request({
    url: '/book/price/bookSoldOut',
    method: 'POST',
    params: {
        'sold': true,
        'books': books,          
    },
    success: function(responseObject) {

    }
});

但我收到错误代码 415 - 我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果books是复合类型的(数组/对象等)那么很可能你需要以某种方式序列化数据,否则就是对象的结果toString被调用,[object object]将是实际发送到服务器的内容。通常,在这种情况下,您可以使用 JSON 编码数据:

Ext.Ajax.request({
    url: '/book/price/bookSoldOut',
    method: 'POST',
    params: {
        sold: true,
        books: Ext.encode( books )  // <-- serialise (as string)
                                    // note that some browsers will trip up
                                    // over the trailing comma you had here
    },
    success: function(responseObject) {

    }
});

如果此更改后仍有错误,则服务器端会错误配置某些内容。