2013-08-21 2 views
1

Вот что я пытаюсь:Сделать запрос перекрестного домена с использованием JSONP получения «непредусмотренный идентификатора»

На стороне клиента:

Ext.data.JsonP.request({ 
    url: "http://172.24.87.38:9090/DynamicWeb/hello-world", 
    params: { 
    }, 
    callback: function (result) { 
     console.log(result); 
     if (response.success === true) { 
      Ext.Msg.alert('Link Shortened', response.result, Ext.emptyFn); 
     } else { 
      Ext.Msg.alert('Error', response.result, Ext.emptyFn); 
     } 
    } 
}); 

на другой домен (сторона сервера):

общественного класса HelloWorldServlet расширяет HttpServlet {

public void doGet(HttpServletRequest req, HttpServletResponse resp) 
     throws ServletException, IOException { 

    /*resp.setContentType("text/html"); 

    PrintWriter out = resp.getWriter(); 
    out.print("Hello World from Servlet"); 
    out.flush(); 
    out.close();*/ 
    boolean jsonP=false; 
    String cd=req.getParameter("callback"); 
    String n= "{data:Hello World from Servlet}";   
    if (cd!=null) { 
     jsonP=true; 
     resp.setContentType("text/javascript"); 
    } else { 
     resp.setContentType("application/x-json"); 
    } 
    Writer out=resp.getWriter(); 
    out.write(n); 
} 
} 

Ошибка я получаю:

Uncaught SyntaxError: Unexpected identifier

{данные: Hello World от Servlet}

I am not getting where I am going wrong.Please help me resolve this issue.Any help is appreciated.Thanks

+0

Возможный дубликат [parsererror после запроса jQuery.ajax с типом содержимого jsonp] (http://stackoverflow.com/questions/5359224/parsererror-after-jquery-ajax-request-with-jsonp-content-type) –

ответ

2
String n= '{"data":"Hello World from Servlet"}'; 
+0

Отредактировано to: "{'data': 'Hello World from Servlet}"; Но получение ошибки «Неожиданный токен:» – Dev

+0

@Daemon Значение может быть строкой в ​​** двойных кавычках ** или числом, или истинным или ложным или нулевым, или объектом или массивом: http: // www. json.org/ – Vlad

0
callback: function (result) { // you are stating you recieve result 
     console.log(result); 
     if (response.success === true) { // but you are trying to use response, change both to result or response 
      Ext.Msg.alert('Link Shortened', response.result, Ext.emptyFn); 
     } else { 
      Ext.Msg.alert('Error', response.result, Ext.emptyFn); 
     } 
    } 

Также JSON вы вернетесь, кажется, неправильно, попробуйте:

callback += "({\"success\":true, \"msj\":" + "\"" + "Exitoooo!" + "\" });"; // where callback is the parameter sent via url 
Смежные вопросы