有点奇怪,第一次调用webservice调用,但从第二次起,我得到了这个奇怪的错误。
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 <
答案 0 :(得分:1)
第一次运行save
时,客户端会将哪些内容发送回服务器? POST请求或PUT请求?第二次,客户端请求更改还是相同?
这可以帮助您确定问题。 Backbone save
方法委托给Backbone.sync
方法,该方法决定它应该做出的请求类型。例如,使用isNew()
模型方法,如果模型是新的或PUT请求(模型更新),则sync
进行POST(因为必须在服务器上保存新模型)请求该模型已经存在。您可以在backbone main page.
sync
方法的更多信息
您从服务器获得的错误可能正在发生,因为它不知道如何响应其中一个请求。可能值得一试。
答案 1 :(得分:0)
According to the backbone.js documention:
If the model isNew, the save will be a "create" (HTTP POST), if the model already exists on the server, the save will be an "update" (HTTP PUT).
所以基本上第一个请求是POST请求,之后的所有其他请求都是PUT请求。由于看起来您的服务器端脚本正在设置处理PUT请求,您可能希望使用emulateHTTP设置,如下所示:
Backbone.emulateHTTP = true