如何为backbone.js设置内容类型和POST?

the*_*ava 3 javascript backbone.js

我可以设置content-typePOST在Backbone.js的?

this.save(data, {
    success: function (user) {
        callback(user.get('LoginStatus'))
    },

    error: function (user, result, xhr) {

    }
});
Run Code Online (Sandbox Code Playgroud)

当我尝试进行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."
Run Code Online (Sandbox Code Playgroud)

dca*_*son 8

为骨干fetchsave方法包裹jQuery.ajax()功能,您可以通过在路过设置骨干Content-Type和请求方法jQuery.ajax() settings的对象直接到无论是fetchsave功能

例如使用fetch函数:

myModel.fetch({
    type: "POST",
    contentType: "application/json"
});
Run Code Online (Sandbox Code Playgroud)

它使用的save功能相同:

myModel.save({
    type: "POST",
    contentType: "application/json"
});
Run Code Online (Sandbox Code Playgroud)

另外我注意到你在save函数中提供了一个数据属性.如果要将JSON作为POSTed数据传递给URL,则需要在save函数中使用以下语法:

myModel.save({
    data: JSON.stringify(myObject),
    type: "POST",
    contentType: "application/json"
});
Run Code Online (Sandbox Code Playgroud)