2016-04-14 22 views
1

Yalnızca istemci ipinde çalışan bir erişim belirteci veren bir api ile çalışıyorum, bu yüzden istemcideki harici siteye istekte bulunmaya çalışıyorum ve JSON yanıtımı sunucuma iade et. Soruyu, JSON'u istemciye nasıl yükleyeceğimi ve depolayacağımı, böylece sunucuya gönderebilmem için soruyorum.Vaadin istemcisinden harici sunucuya istekte bulunun ve JSON yanıtı benim kopuğuma döndürün

https://vaadin.com/docs/-/part/framework/gwt/gwt-javascript.html#gwt.javascript.rpc

Sen bir JavaScript bağlamak oluşturabilirsiniz:

cevap

3

bir Vaadin en

entegre JavaScript Bileşenleri'adresindeki göz ve Uzantıları burada

atın teşekkürler ya sonra RPC en şöyle yapmak için kullanabilirsiniz bileşen: JavaScript

@JavaScript({"mycomponent-connector.js"}) 
public class MyComponent extends AbstractJavaScriptComponent { 

    public MyComponent(){ 
     // when you create the component 
     // add a function that can be called from the JavaScript 
     addFunction("returnResponse", new JavaScriptFunction() { 
      @Override 
      public void call(JsonArray arguments) { 
       String response = arguments.getString(0)); 
       // do whatever 
      } 
     }); 
    } 

    // set up a way to make the request 
    public void makeRequest(String url) { 
     callFunction("makeRequest", url); 
    } 

} 

mycomponent-connector.js (kullanarak XMLHttpRequest örnek) dosyası:

window.com_example_mypackage_MyComponent = 
function() { 
    var connector = this; 

    // add a method to the connector 
    this.makeRequest = function(theUrl){ 
     var xmlHttp = new XMLHttpRequest(); 
     xmlHttp.onreadystatechange = function() { 
      if (xmlHttp.readyState == 4 && xmlHttp.status == 200) 
       connector.returnResponse(xmlHttp.responseText); 
      } 
     }; 
     xmlHttp.open("GET", theUrl, true); // true for asynchronous 
     xmlHttp.send(null); 
    } 
}; 

makeRequest ateş edeceği sunucu tarafında yöntemi MyComponent.makeRequest("myurl") çağrılması istemcide yöntem. Yanıt geri döndüğünde, sunucuya geri göndermek için connector.returnResponse(xmlHttp.responseText) numaralı telefonu arayarak MyComponent yapıcıya eklenmiş "returnResponse" işlevi tarafından ele alınacaktır.

+0

Ben aptal olabilirim ama insanlar çok ayrıntılı açıkladığında seviyorum =) Teşekkür ederim, zaman ayırdığınız için teşekkür ederiz. –