Reputation: 201
First of all, I've been looking for the answer to my problem in several topics and I couldn't find a solution that works with my code.
I'm trying to get the answer from a servlet, if I go to http://XXXZZZ/Servlet/Login?login=pepe&pass=1234
I receive valid JSON as expected:
{"id":3,"login":"pepe","key":"0D1DBA4BE87E02D43E082F9AA1ECFDEB"}
But when I try the same with $.ajax, I get 2 errors.
$.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);
}
});
First error (in the popup window):
parsererror Error: jQuery17104145435250829905_1336514329291 was not called
Second error (in the Chrome console):
Uncaught SyntaxError: Unexpected token : Login 1
(And there is the JSON I'm waiting for).
P.S. I have to use dataType : "jsonp", because if I use "json" I also have problems with the Cross-Domain.
Upvotes: 20
Views: 62169
Reputation: 195992
If you are using jsonp then the syntax is wrong
You need to return
myJsonMethod({"id":3,"login":"pepe","key":"0D1DBA4BE87E02D43E082F9AA1ECFDEB"});
and also add to your ajax request options
jsonp: false,
jsonpCallback: "myJsonMethod"
so
$.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);
}
});
(and of-course fix the success
as @voyager noted)
Upvotes: 21
Reputation: 1323
First off you have a typo in your success parameter; you missed the ending s. Also, when you are performing a JSONP request you need to return your JSON information in JSONP format; which should include the callback token as part of the return string. A sample JSONP string would look likes this:
yourcallbacktoken({"id":3,"login":"pepe","key":"0D1DBA4BE87E02D43E082F9AA1ECFDEB"})
Take a look at this page for more information on the JSONP specifications: http://devlog.info/2010/03/10/cross-domain-ajax/
Upvotes: 1
Reputation: 36832
succes : function(data){
That's a typo:
success : function(data){
Upvotes: 11