Javascript 如何为backbone.js设置内容类型和帖子?
我可以在backbone.js中设置Javascript 如何为backbone.js设置内容类型和帖子?,javascript,backbone.js,Javascript,Backbone.js,我可以在backbone.js中设置内容类型和POST this.save(data, { success: function (user) { callback(user.get('LoginStatus')) }, error: function (user, result, xhr) { } }); 当我尝试拨打REST服务电话时,收到了错误的请求,它在fiddler中工作。我们需要设置类型和内容类型吗 这是我得到的错误 [ERROR]
内容类型
和POST
this.save(data, {
success: function (user) {
callback(user.get('LoginStatus'))
},
error: function (user, result, xhr) {
}
});
当我尝试拨打REST服务电话时,收到了错误的请求,它在fiddler中工作。我们需要设置类型和内容类型吗
这是我得到的错误
[ERROR][TiHttpClient( 636)] (TiHttpClient-1) [13340,13340] HTTP Error (org.apache.http.client.HttpResponseException): Bad Request
[ERROR][TiHttpClient( 636)] org.apache.http.client.HttpResponseException: Bad Request
[ERROR][TiHttpClient( 636)] at ti.modules.titanium.network.TiHTTPClient$LocalResponseHandler.handleResponse(TiHTTPClient.java:240)
[ERROR][TiHttpClient( 636)] at ti.modules.titanium.network.TiHTTPClient$LocalResponseHandler.handleResponse(TiHTTPClient.java:199)
[ERROR][TiHttpClient( 636)] at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:657)
[ERROR][TiHttpClient( 636)] at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:637)
[ERROR][TiHttpClient( 636)] at ti.modules.titanium.network.TiHTTPClient$ClientRunnable.run(TiHTTPClient.java:1217)
[ERROR][TiHttpClient( 636)] at java.lang.Thread.run(Thread.java:1020)
[ERROR][TiAPI ( 636)] [REST API] ERROR: " *** FaultException : Object reference not set to an instance of an object."
[ERROR][TiAPI ( 636)] [REST API] apiCall ERROR: " *** FaultException : Object reference not set to an instance of an object."
我不太理解发布的错误,但如果您只想在调用中设置内容类型或更改一些其他默认设置,那么这是完全可能的 如果查看主干中模型原型的save函数,它实际上使用this.sync或默认的“Backbone.sync”方法进行调用。通过检查Backbone.sync函数,您可以看到它实际上使用jquery的“ajax”方法进行调用。注释行 返回$.ajax(u.extend(参数,选项)); 因此,您应该能够将jquery的ajax方法将采用的任何内容作为选项传递给它。在相同的同步方法中,您还可以看到它如何设置标准的默认内容类型params.contentType='application/json'
您还可以为模型编写自己的同步方法,并通过更改默认参数进行自己的ajax调用。如果您的模型有自己的同步方法,那么将调用它而不是默认的Backbone.sync方法。作为主干
fetch
和save
方法包装jQuery.ajax()
函数,您可以通过传入ajQuery.ajax()在主干中设置内容类型和请求方法
设置
对象直接指向获取
或保存
功能
例如,使用fetch
功能:
myModel.fetch({
type: "POST",
contentType: "application/json"
});
myModel.save({
type: "POST",
contentType: "application/json"
});
myModel.save({
data: JSON.stringify(myObject),
type: "POST",
contentType: "application/json"
});
使用save
功能也一样:
myModel.fetch({
type: "POST",
contentType: "application/json"
});
myModel.save({
type: "POST",
contentType: "application/json"
});
myModel.save({
data: JSON.stringify(myObject),
type: "POST",
contentType: "application/json"
});
我还注意到您在保存
函数中提供了一个数据属性。如果要将JSON作为发布的数据传递到URL,则在save
函数中需要以下语法:
myModel.fetch({
type: "POST",
contentType: "application/json"
});
myModel.save({
type: "POST",
contentType: "application/json"
});
myModel.save({
data: JSON.stringify(myObject),
type: "POST",
contentType: "application/json"
});
请求失败的原因是什么?状态代码,正文输出?@ChuckE:异常已更新。哪个url响应REST请求?您能否确认您正在使用现有资源?