この問題を解決するために数日かかりましたが、解決できませんでした。
senchatouch 2.0 で作成した Web アプリから、Java で作成した安らかな Web サービスにリクエストを送信したいと考えています。リクエストをクロスドメインにするために調査した唯一のオプションは、「Ext.data.JsonP.request」を使用することです。私はこのコード例を取りました:
Ext.data.JsonP.request({
url: 'http://free.worldweatheronline.com/feed/weather.ashx',
callbackKey: 'callback',
params: {
key: '23f6a0ab24185952101705',
q: '94301', // Palo Alto
format: 'json',
num_of_days: 5
},
callback: function( data ) { console.log("callback" + data);},
success: function(result, request) {
console.log("success");
var weather = result.data.weather;
this.respuesta = 'The temperature in Palo Alto is <b>' + weather[0].tempMaxF + '° F</b>';
return 'The temperature in Palo Alto is <b>' + weather[0].tempMaxF + '° F</b>';
},
failure: function(response) {
console.log("failure");
var json = Ext.decode(response.responseText);
return 'fail';
}
});
これは完璧に機能します。次に、Java (JAX-RS) で作成した RESTful Web サービスに接続する必要があります。これは私の方法です:
@GET
@Produces("application/json")
public String getJson(@QueryParam("texto") String cadenaTxt) {
System.out.println(" -----request in getJson:"+ cadenaTxt + "-----");
String json1 = "{'name:'George Koch', 'age':58}";
String jsonPoutput = "callback("+ json1 + ");";
return jsonPoutput;
}
Web サービス要求を行う JavaScript コードは次のとおりです。
Ext.data.JsonP.request({
url: 'http://localhost:8080/proxySimplext/webresources/simplificar',
callbackKey: 'callback',
params: {
format: 'json',
texto: 'texto que envio'
},
callback: function( data ) {
console.log("callback" + data);
},
success: function(result, request) {
console.log("success");
return 'Sucesss';
},
failure: function(response) {
console.log("failure");
var json = Ext.decode(response.responseText);
console.log('Fallo de conexion:' + json);
return 'failure';
}
});
動作していません。
リクエストは Web サービスに届きますが、JavaScript コードでタイムアウトをスキップします。私は多くの解決策を試しましたが、それを修正する方法はありません。
コンソールの応答は次のとおりです。
Uncaught SyntaxError: Unexpected identifier
failure Utils.js:105
Fallo de conexion:undefined
何が起こる可能性がありますか?どんなアイデアでも大歓迎です
どうもありがとうございました!!