0
I’m having trouble exchanging information between my web application (client) and my application java
on the server side. I am trying to query the server via JQuery
and hoping to receive as a return json
. On the server side I’m using java
to generate the json
.
I’m making a request via ajax
as follows:
<script type="text/javascript">
$("document").ready (function() {
$.ajax ({
crossDomain: true,
type: "GET",
contentType: "application/json; charset=utf-8",
async: true,
url: "https://www.testeservidor.com/FrontController?action=testeJSON",
data: {user:"usuarioComum"},
dataType: "json",
jsonpCallback: 'fnsuccesscallback',
success: function (data) {
alert (data.user);
}
});
});
</script>
And on the server side, my servlet
this way:
public class TesteJSON {
public TesteJSON() {}
public void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
{
JSONObject json = getLoginAndPassword(request.getParameter("user"));
response.setContentType("application/json; charset=utf-8");
PrintWriter writer = response.getWriter();
writer.write(json.toString());
System.out.println("OK");
}
} catch (Exception e) {
e.printStackTrace();
throw new ServletException(e);
}
}
public static JSONObject getLoginAndPassword(String usuario) throws SQLException, ClassNotFoundException, Exception {
PreparedStatement stmt = null;
Connection conn = null;
ResultSet result = null;
JSONObject userJson = null;
try {
conn = Conexao.getInstance().getConnection();
String sql = "SELECT user_login FROM Usuario WHERE user_login = ?";
stmt = conn.prepareStatement(sql);
stmt.setString(1, usuario);
result = stmt.executeQuery();
if (!result.next())
throw new Exception ("Não foi encontrado nenhum registro " + usuario);
else {
String login = result.getString(1);
userJson = new JSONObject();
userJson.put("user", login);
}
return userJson;
} catch (SQLException e) {
throw e;
} finally {
try {
if (stmt != null)
stmt.close();
if (conn != null)
stmt.close();
} catch (SQLException e) {
throw e;
}
}
}
}
Would anyone have any hint of what might be going wrong?
Note: I used as a reference, this link below:
What mistake is happening exactly?
– Piovezan
I’m not getting any return value from my server
– Duds
In the browser’s Dev Tools console some error appears?
– adelmo00
This message appeared on the Chrome Console: Xmlhttprequest cannot load https://www.testeservor.com/FrontController?action=TesteJSON. No 'Access-Control-Allow-Origin' header is present on the requested Resource. Origin 'http://www.testecliente.com.br' is therefore not allowed access.
– Duds
See if you can get help http://stackoverflow.com/questions/20433655/no-access-control-allow-origin-header-is-present-on-the-requested-resource-or
– adelmo00
Thank you @adelmo00 ! As the link you passed, just add Sponse.addHeader("Access-Control-Allow-Origin", "http://www.example.com"); which worked!
– Duds