我花了几天时间试图解决这个问题,但没办法。
我想通过我使用senchatouch 2.0创建的网络应用程序向我在java中创建的一个安静的网络服务发出请求。我研究了它以提交请求跨域只有选项是使用“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;
}
发出网络服务请求的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
会发生什么?欢迎任何想法给我
非常感谢!!