Thursday, 15 April 2010

java - Add Access-Control-Allow-Origin for CROS -



java - Add Access-Control-Allow-Origin for CROS -

i'm developping spring mvc rest api. added access-control-allow-origin in response.

with postman, found header :

access-control-allow-methods →post, get, options, delete access-control-allow-origin →* content-type →application/json;charset=utf-8 server →apache-coyote/1.1 transfer-encoding →chunked

but when test test.html, shows error :

xmlhttprequest cannot load http://localhost:8080/rest/v1/tokens. no 'access-control-allow-origin' header nowadays on requested resource. origin 'null' hence not allowed access.

i don't know why because postman, access-control-allow-origin there. maybe it's problem of application/json?

ajax part :

function tokens_post(username,password){ $.ajax({ type:"post", url:"http://localhost:8080/rest/v1/tokens", datatype: "json", contenttype : "application/json", data:{username:username,password:password}, success:show_user_info, error:checkerror }); }

server code :

@requestmapping(value = resturiconstants.token_post, method = requestmethod.post) public @responsebody responseentity<token> tokenpost( @requestbody user user, httpservletrequest rq, httpservletresponse rp) { resttemplate resttemplate = new resttemplate(); responseentity<token> response = resttemplate.postforentity(token_post_url, user, token.class); rp.addheader("access-control-allow-origin", "*"); rp.addheader("access-control-allow-methods", "post, get, options, delete"); response = new responseentity<token>(response.getbody(), httpstatus.ok); system.out.println(response.getbody().tostring()); homecoming response; }

the server code, uses rest api.

converter

<!-- configure plugin json request , response in method handler --> <beans:bean class="org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter"> <beans:property name="messageconverters"> <beans:list> <beans:ref bean="jsonmessageconverter"/> </beans:list> </beans:property> </beans:bean> <!-- configure bean convert json pojo , vice versa --> <beans:bean id="jsonmessageconverter" class="org.springframework.http.converter.json.mappingjackson2httpmessageconverter"> </beans:bean>

add crossdomain : true in ajax attribute

also alter data:json.stringify({username:username,password:password}),

java http java-ee web cors

No comments:

Post a Comment