簡體   English   中英

如何使用Backbone.js正確設置CORS POST請求

[英]How to properly setup a CORS POST request with Backbone.js

我有一個應用程序,后端托管在與前端不同的服務器上。 后端已經設置為允許來自前端的請求,我們使用jQuery $.ajax方法通過POST請求確認了這一點。 盡管如此,我真正想做的是在Backbone模型上配置save方法以執行相同或類似的操作,以便它也可以與Backbone一起使用。 這是我現在的代碼:

$.ajax({
    type: 'POST',
    url: 'https://someurl.com/controller',
    crossDomain: true,
    data: '{"some":"json"}',
    dataType: 'json',
    success: function(responseData) {
        // handle success
    },
    error: function (error) {
        // handle error
    }
});

我想做這樣的事情:

myModel.save(null, function(data){
    // handle response appropriately
});

你可以幫幫我嗎?

您可以覆蓋Model.sync以自定義發送到服務器的請求。 例如,要添加crossdomain: true屬性:

var M = Backbone.Model.extend({
    url: 'https://someurl.com/controller',

    sync: function(method, model, options) {
        _.defaults(options || (options = {}), {
            crossDomain: true
        });

        return Backbone.sync.call(this, method, model, options);
    }
});

var m = new M();
m.save();

我最終創建了一個自定義方法來保存,它與我之前完全相同,但至少它是更好的封裝,因為該方法是在模型上定義的。

        saveFunction: function(attributes, callback) {
            $.ajax({
                type: 'POST',
                url: this.url,
                dataType: 'json',
                crossDomain: true,
                data: attributes
            }).done(function( data ) {
                   callback(data);
            }); 
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM