我花了几天时间试图解决这个问题,但没有办法。
我想从我用 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
会发生什么?欢迎任何想法给我
非常感谢!!