jquery – $.ajax和JSONP. ParseError和未捕获SyntaxError:意外的令牌:

前端之家收集整理的这篇文章主要介绍了jquery – $.ajax和JSONP. ParseError和未捕获SyntaxError:意外的令牌:前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
首先,我一直在寻找我的问题的答案在几个主题,我找不到一个适用于我的代码解决方案.

我试图从一个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的成功)

猜你在找的jQuery相关文章