首先,我一直在寻找我的问题的答案在几个主题,我找不到一个适用于我的代码的解决方案.
我试图从一个servlet得到答案,如果我去http:// XXXZZZ / Servlet / Login?login = pepe& pass = 1234我收到有效的JSON如预期的:
{"id":3,"login":"pepe","key":"0D1DBA4BE87E02D43E082F9AA1ECFDEB"}
但是当我尝试与$.ajax相同时,我会收到2个错误.
$.ajax({ type : "Get",url :"http://XXXZZZ/Servlet/Login",data :"login="+login+"&password="+pass,dataType :"jsonp",success : function(data){ alert(data);},error : function(httpReq,status,exception){ alert(status+" "+exception); } });
第一个错误(在弹出窗口中):
parsererror Error: jQuery17104145435250829905_1336514329291 was not called
第二个错误(在Chrome控制台中):
Uncaught SyntaxError: Unexpected token : Login 1
(还有我正在等待的JSON).
附:我必须使用dataType:“jsonp”,因为如果我使用“json”我也有跨域的问题.
解决方法
如果您使用jsonp,则语法错误
你需要返回
myJsonMethod({"id":3,"key":"0D1DBA4BE87E02D43E082F9AA1ECFDEB"});
并添加您的ajax请求选项
jsonp: false,jsonpCallback: "myJsonMethod"
所以
$.ajax({ type : "Get",jsonp: false,jsonpCallback: "myJsonMethod",success : function(data){ alert(data);},exception){ alert(status+" "+exception); } });
(当然,修正了@voyager的成功)