$ .ajax和JSONP。ParseError和Uncaught语法错误:Unexpected token :如何解决?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (43)

首先,我在几个主题中一直在寻找解决我的问题的答案,但找不到适用于我的代码的解决方案。

我试图从一个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”,我也有跨域问题。

提问于
用户回答回答于
succes : function(data){

这是个错误:

success : function(data){
用户回答回答于

如果使用的是jsonp,那么语法是错误的

你需要回报

myJsonMethod({"id":3,"login":"pepe","key":"0D1DBA4BE87E02D43E082F9AA1ECFDEB"});

并添加到ajax请求选项

jsonp: false,
jsonpCallback: "myJsonMethod"

所以

$.ajax({
    type : "Get",
    url :"http://XXXZZZ/Servlet/Login",
    data :"login="+login+"&password="+pass,
    dataType :"jsonp",
    jsonp: false,
    jsonpCallback: "myJsonMethod",
    success : function(data){
        alert(data);},
    error : function(httpReq,status,exception){
        alert(status+" "+exception);
    }
});

扫码关注云+社区