Javascript webservice调用第二次失败-backbone.js
这有点奇怪,第一次调用webservice调用时,但从第二次开始,我就遇到了这个奇怪的错误Javascript webservice调用第二次失败-backbone.js,javascript,backbone.js,Javascript,Backbone.js,这有点奇怪,第一次调用webservice调用时,但从第二次开始,我就遇到了这个奇怪的错误 this.save(requestObject, { success: function (response) { callback(response.toJSON()); }, error: function (res, result, xhr) { } }); 我第一次收到回调,为什么第二次就失败了?下面是错误日志 HTTP Error (org.
this.save(requestObject, {
success: function (response) {
callback(response.toJSON());
},
error: function (res, result, xhr) {
}
});
我第一次收到回调,为什么第二次就失败了?下面是错误日志
HTTP Error (org.apache.http.client.HttpResponseException): 596
[ERROR][TiHttpClient( 478)] org.apache.http.client.HttpResponseException: 596
[ERROR][TiHttpClient( 478)] at ti.modules.titanium.network.TiHTTPClient$LocalResponseHandler.handleResponse(TiHTTPClient.java:240)
[ERROR][TiHttpClient( 478)] at ti.modules.titanium.network.TiHTTPClient$LocalResponseHandler.handleResponse(TiHTTPClient.java:199)
[ERROR][TiHttpClient( 478)] at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:657)
[ERROR][TiHttpClient( 478)] at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:637)
[ERROR][TiHttpClient( 478)] at ti.modules.titanium.network.TiHTTPClient$ClientRunnable.run(TiHTTPClient.java:1217)
[ERROR][TiHttpClient( 478)] at java.lang.Thread.run(Thread.java:1020)
[ERROR][V8Exception( 478)] Exception occurred at undefined:1: Uncaught SyntaxError: Unexpected token <
HTTP错误(org.apache.HTTP.client.HttpResponseException):596
[错误][TiHttpClient(478)]org.apache.http.client.HttpResponseException:596
位于ti.modules.tianium.network.TiHttpClient$LocalResponseHandler.handleResponse(TiHttpClient.java:240)的[ERROR][TiHttpClient(478)]
位于ti.modules.tianium.network.TiHttpClient$LocalResponseHandler.handleResponse(TiHttpClient.java:199)的[ERROR][TiHttpClient(478)]
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:657)上的[ERROR][TiHttpClient(478)]
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:637)上的[ERROR][TiHttpClient(478)]
位于ti.modules.tianium.network.TiHttpClient$ClientRunnable.run(TiHttpClient.java:1217)的[ERROR][TiHttpClient(478)]
java.lang.Thread.run(Thread.java:1020)中的[ERROR][TiHttpClient(478)]
[错误][V8Exception(478)]在未定义的位置发生异常:1:未捕获的语法错误:意外标记<
当您第一次运行
保存时,客户端将向服务器发送什么?POST请求还是PUT请求?第二次,客户机请求是更改还是相同
这可能有助于您识别问题。主干save
方法委托给Backbone.sync
方法,该方法决定它应该发出的请求类型。例如,如果模型是新的,则使用isNew()
model方法,sync
发出POST(因为必须在服务器上保存新模型)请求,如果模型已经存在,则发出PUT请求(模型更新)。有关sync
方法的更多信息,请访问
您从服务器获得的错误可能正在发生,因为它不知道如何响应此请求之一。也许值得一看。:
如果模型是新的,则保存为“创建”(HTTP POST),如果服务器上已经存在该模型,则保存为“更新”(HTTP PUT)。
所以基本上第一个请求是POST请求,之后所有其他请求都是PUT请求。由于服务器端脚本似乎具有处理PUT请求的设置,因此您可能希望使用如下设置:
Backbone.emulateHTTP = true
问题可能出在服务器端。您确定第一次调用不会产生副作用,导致后续调用失败吗?@Y\uuu:我们如何检查第一次调用没有产生任何影响。在第一次和第二次调用中,您能否跟踪从服务器到客户端的响应?如果没有来自服务器端的任何代码,就很难判断。@Y\uuuu:第二次它甚至没有进入onLoad调用。。。我是指成功调用。是的,但我的意思是,问题代码似乎不是您发布的JavaScript
部分,而是服务器端的Java
代码。至少有例外。这个问题可以帮助你吗?