2011-11-22 6 views
6

içinde bir köstebek ile http post çağrı ile ilgili bir sorunum var. Çapraz bir menşe olduğunda, firefox'un POST'tan önce erişim-kontrol-izin başlıklarını bilmesi için önce bir OPTIONS gerçekleştirdiğini biliyorum.http post isteği ile javascript

Net.requestSpeech.prototype.post = function(url, data) { 
    if(this.xhr != null) { 
     this.xhr.open("POST", url); 
     this.xhr.onreadystatechange = Net.requestSpeech.eventFunction; 
     this.xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8"); 
     this.xhr.send(data); 
    } 
} 

Ben bu işlevi çağırır basit html bu kodu test: Bu kod ile i herhangi bir sorun yok. Her şey yolunda ve ben OPTIONS ve POST yanıtı var ve ben cevabı işliyorum. Ancak, bu kodu (bu bir sorun olup olmadığını bilmiyorum) jquery kullanır ile varolan bir uygulama ile bütünleştirmeye çalışıyorum, bu durumda (veri) yürütür, tarayıcı (firefox) aynı şeyi yapar, ilk yapın bir SEÇENEĞİ isteği, ancak bu durumda sunucunun yanıt almayı yoktur ve konsolda bu mesajı koyar:

[18:48:13.529] OPTIONS http://localhost:8111/ [undefined 31ms] 

tanımsız ... yanıt almak yok, ama kod aynı olduğu için tanımsız i Bu durumda neden cevabı almadığını bilmiyorum, birinin bir fikri var mı?

Sunucu uygulamasında hata ayıkla ve OPTIONS sunucuya ulaşıyor, ancak tarayıcı yanıtı beklemiyor gibi görünüyor.

daha fazla düzenleme: tamam Sorunun tamamını yapan yöntemin çağrılmasını sağlayan bir SCRIPT etiketi ile basit bir html ile çalıştırdığımda sorun olduğunu düşünüyorum, ancak yanıt almayan bu uygulamada, bir Bir onsubmit olayı yapan formu, gönder olayının çok hızlı döndüğünü ve tarayıcının OPTIONS isteğini almak için zamanının olmadığını düşünüyorum. daha sonra daha sonra

düzenleme:

this.xhr.open("POST", url, false); 

çok hızlı tepkisini daha göndermek ve tarayıcının OPTION yanıta bir fikrin sabırsızlanıyorum: WTF i sorunu çözmek POST isteği senkronize hale bu?

cevap

2

Aynı başlangıç ​​politikası nedeniyle, çapraz başlangıç ​​gönderi gönderemezsiniz, , iframe'deki siteleri (etki alanına eriştiyse) orijinal siteyi içeriyorsa, dış siteye iframe içeriyorsa, iç yön yasaldır.