首先我承认我在js上非常糟糕,刚刚开始。我在存储库中有这个片段:
function sendReport() {
$.post($('#reportForm').attr('action') + '/post', $("#reportForm").serialize()).done(function() {
reportManager.run();
});
}
我想向它添加数据。我希望接收帖子的Web服务接收额外的键/值对。我试过像
这样的东西var data = $('#reportForm').serializeArray();
data.push({name: 'stuff', value: 'blaha'});
$.post(data, $("#reportForm").serialize()).done(function() {
reportManager.run();
});
根本没有工作,我真的很感激任何帮助。
编辑:
尝试做下面的建议,没有用。试过这只是为了验证新参数没有破坏任何东西:
//data to post
var data = $('#reportForm').serializeArray();
//url to post
var url = $('#reportForm').attr('action') + '/post';
//options required for jQuery.post
var options = { "data":data, "url": url };
$.post(options).done(function() {
reportManager.run();
});
这不起作用。我在服务器上收到这样的错误:
noHandlerFound No mapping found for HTTP request with URI [/[object Object]]
我正在考虑代码中的其他内容可能会使用某些隐式行为,但我发现尝试上面的代码(甚至不添加新数据)会破坏当前的工作行为,这很奇怪。
答案 0 :(得分:2)
您没有为post方法提供uri参数,您应该使用类似于:
的内容//data to post
var data = $('#reportForm').serializeArray();
data.push({name: 'stuff', value: 'blaha'});
//url to post
var url = $('#reportForm').attr('action') + '/post';
//options required for jQuery.post
var options = { "data":data, "url": url };
$.post(options).done(function() {
reportManager.run();
});