Bu backbone.js ve bir Rails arka uç kullanan bir Phonegap uygulaması yapıyorum. ($ Sunucusu raylar) Ben http://0.0.0.0:8000
benim PhoneGap web uygulaması çalıştırıyorumRaylar, Omurga, PhoneGap, CORS (Access-Control-Allow-Origin hatası tarafından izin verilmiyor)
($ python -m SimpleHTTPServer) ve http://0.0.0.0:3000
tarihinde WEBrick benim Raylar uygulama çalıştırıyor: yeni kullanıcılar oluştururken, bir CORS ilgili hata alıyorum. Sayısız okudum
def set_access_control_headers
headers['Access-Control-Allow-Origin'] = 'http://0.0.0.0:8000'
headers['Access-Control-Request-Method'] = 'POST, GET'
end
: Burada
> s = new App.Models.Spot()
(creates Spot)
> s.save()
(returns error Object)
OPTIONS http://0.0.0.0:3000/spots.json 404 (Not Found) jquery-1.8.2.js:8416
XMLHttpRequest cannot load http://0.0.0.0:3000/spots.json. Origin http://0.0.0.0:8000 is not allowed by Access-Control-Allow-Origin.
başvurum denetleyicisi şudur: Bu (krom js konsoluna) gibi omurga içerisine yeni bir "Spot" oluşturmaya çalışırken
sorun olmuyor makaleler ve uzak boyunca elimden bu içerecek şekilde benim routes.rb değiştirirken edildi olsun:
match '*all' => 'application#cor', :constraints => {:method => 'OPTIONS'}
Ve rotayı sonra beni olanak sağlayacak 'cor' yöntemi ekleme benim application_controller.rb
def cor
headers["Access-Control-Allow-Origin"] = "*"
headers["Access-Control-Allow-Methods"] = %w{GET POST PUT DELETE OPTIONS}.join(",")
headers["Access-Control-Allow-Headers"] = %w{Origin Accept Content-Type X-Requested-With X-CSRF-Token}.join(",")
head(:ok) if request.request_method == "OPTIONS"
end
kayıtları silerken aynı hatayı olacak kaydeder, ancak.
CORS'in temel fikrini alırım, isteğimin kaynağına göre farklı bir etki alanına sahip bir sunucuya erişemiyorum. Ama bunu Rails, Backbone, Phonegap ile nasıl ayarlayacağım tam olarak belli değil. Herhangi bir yardım harika olurdu, teşekkürler!
+1 Eşleşme için * all '=>' application # cor ',: kısıtlamalar => {: method =>' OPTIONS '} ' – user2503775