我不继续,因为小时,我很frustated,因为我无法找到我的错,和/或我失败的误解:的Javascript:jQuery的POST请求未正常工作
我想呼吁后端JSON数据 - 通过下面的源代码:
function dosomething(type)
{
$.post("dosomethingontheserver", {type}, function(myjson) {
// do something usefull with myjson data
}, 'json')
.done(function() {
// just ignore
})
.fail(function(xhr, textStatus, errorThrown) {
console.log(xhr.statusText);
console.log(textStatus);
console.log(errorThrown);
console.log("type "+type);
})
.always(function() {
// alert("finished for type="+type);
}); }
如果该代码被称为经:
dosomething(0);
万事大吉。但是,如果我把这两次这样的:
dosomething(0);
dosomething(1);
我得到的控制台上执行以下操作:
SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data Stack-Trace: [email protected]/jquery-1.12.4.js:9011:10 [email protected]/jquery-1.12.4.js:9335:19 [email protected]/jquery-1.12.4.js:9789:15 [email protected]/jquery-1.12.4.js:10311:8
看来,(第一)请求由呼叫从第二取消和响应不再(再)是json格式。服务器总是返回一个json格式 - 所以服务器端没有错误。如果我在dosomething()函数中花费了一些额外的时间 - 比如alert('hello'),这种情况就不会发生了。
任何想法/提示为什么秒调用会中断第一个(正在进行的)调用?
也许服务器无法处理多个调用并引发错误?您是否尝试过记录以确认服务器是否为这两个调用返回了json数据? – H77
好点。我会检查这.... –
服务器可以处理multipe请求。后端是在eclipse环境中执行的sevlet(在tomcat 8中)。我在它里面放了一些调试行 - 两个请求都被接收到并且两个响应都被传输。两个响应都被一个静态字符串取代 - 所以两个响应都是相同的。 –