使用$ ajax从tomcat服务器执行GET请求总是失败jQuery

时间:2014-01-27 09:29:34

标签: javascript jquery java-ee

当我执行任何请求(post,get)时,我在tomcat server.always上有后端webService,代码输入错误方法。

jQuery代码是:

var jqxhr = $.ajax(
{
   type:"GET", 
   url:url
   success: function() {    
       alert("success");  
   },
   error: function() {
       alert("fail");
   }    
});

我的网址是:

http://"192.168.20.220":6060/NostServices/rest/user/resend_activation_email/mailex@blah.com
日志上的

错误消息是:

XMLHttpRequest cannot load http://"192.168.20.220":8080/NostServices/rest/user/resend_activation_email/dsgg@sdfkmj.com. 
No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'http://"192.168.20.220":8383' is therefore not allowed access. 

Web服务服务器是tomcat。

此requset的响应可以是1表示成功,-1表示邮件无效

并始终输入fail方法,当我尝试提醒响应时输出[object object]

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

这是JSONP请求,因此您的服务器端脚本需要返回回调中包含的数据:

例如

var url = 'http://example.com/req.json?callback=?';

$.ajax({
   type: 'GET',
   url: url,
   async: false,
   jsonpCallback: 'jsonCallback',
   contentType: "application/json",
   dataType: 'jsonp',
   success: function(json) {
       console.log(json);
   },
   error: function(e) {
       console.log(e.message);
    }
});

在服务器端:

jsonCallback({});

答案 1 :(得分:0)

由于您的错误导致您的代码因跨域错误问题而失败。这里有一个非常详细的答案:

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '...' is therefore not allowed access

请付出一些努力谷歌这些问题,这是一个非常常见的事情你尝试和所有错误之前已经遇到过,并已在某处解决。如果您不自行调试或提供所有必需的详细信息,人们将非常恼火,如:

  • 所有相关代码
  • 打印出代码中的任何变量,例如URL的
  • 任何错误消息
  • 您尝试过的事项列表

另一方面,URL不应该引用它。它不应该是

http://"192.168.1.1":.........

它应该是:

http://192.168.1.1:........