以下是我正面臨的問題。帶有Backbone的PHP跨域(AJAX)代理
我在域A.建設我的REST API與Laravel 4
的API將提供JSON的,以我的應用程序,它是在域B.
爲避免交叉來源政策問題,我已經做了兩件事:
- 客戶端 - 我已經下載了一個PHP代理腳本 - 上域B - ,並用它來發送GET,POST請求我的API域A.
我已經使用了位於github的腳本。
- 服務方面,我已經讓Laravel接受CORS。
一切都很好,事情是「分類」工作。
前端由Backbone控制,這導致我的問題來源。
望着代理的文檔,這裏是應該如何使用jQuery使用:
$('#target').load('http://www.yourdomain.com/proxy.php', {
csurl: 'http://www.cross-domain.com/',
param1: value1,
param2: value2
});
基本上,我送csurl我的REST API領域的價值 - DOMAINA
的其他參數(param1和param2)用於向api發送不同的東西,就像csrf令牌等等。
找到Backbone,我似乎無法使Backbone模型正常工作,我不知道如何處理髮送參數。
這裏是骨幹模式:
var MyModel = Backbone.Model.extend({
url: 'http://domainB.dev/proxy.php'
});
在我看來,我實例並嘗試通過參數:
var myModel = new MyModel();
myModel.save({
data: {
csurl: 'http://domainA.dev'
param1: 'mytoken'
}
}, {
success: function() {},
error: function() {}
});
的數據沒有達到我的API - 我發現它在該職位,職位實際工作 - 但我沒有得到成功的回調。
基本上,我不知道如何將代理的文檔實現爲Backbone。
有什麼建議嗎?
嘿尤金,TY更換您的視圖代碼! - 我檢查過了 - Laravel(包含我的api,服務器端)發送了正確的JSON頭文件 - 我檢查了它,直接在瀏覽器中查看響應。問題是代理腳本,我相信它會將標題更改爲「text/html」 - 現在,我已將dataTpe文本添加到我的主幹模型,但它仍然不起作用 –
我必須配置代理腳本並添加服務器的URL,以便腳本允許它。現在,我使用正確的標題獲得有效的JSON響應,但Backbone的成功回調不會觸發。這真的很奇怪。有任何想法嗎? –
我沒有想法,在這種情況下,我使用調試器:-) –