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