Webstormアプリケーションからバックエンドアプリケーションにリクエストを送信しようとしていますが、両方が異なるポートにあります。フロントエンドのangularJSとjava spring 4.2.5で作業しています。バックエンド。私は春のコントローラがSpringでCORSフィルタを有効にする方法4.2
@RequestMapping(value = "/example", method = RequestMethod.POST)
@ResponseBody
public String postAppUser(@RequestParam String eg) throws JsonProcessingException {
return "ok yes ";
}
のように見えます
registerController.factory('registerFactory', function(){
return {
getClassification:function($http,tempString){
//TODO add URL
var url = "http://localhost:8081/example?eg="+tempString
return $http({
method: 'POST',
url: url
});
}
}
});
ようangularJSコントローラが見え
XMLHttpRequest cannot load http://localhost:8081/appUser. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:63342' is therefore not allowed access. The response had HTTP status code 404.
され、この私のエラーをした後、しかし、CORSアノテーションをCORSフィルタを追加するなど、さまざまなものを試してみました
CORSフィルタを追加しようとしましたが、何も動作していないようです。それがアプリケーションによってピックアップされているかどうかは分かりません。私は設定パスの中にあることを意味します。これは、HTTP呼び出しは次のようになります
<web-app>
<display-name>Archetype Created Web Application</display-name>
<filter>
<filter-name>cors</filter-name>
<filter-class>com.myApp.security.CORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>cors</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
よう
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;
@Component
public class CORSFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With, remember-me");
chain.doFilter(req, res);
}
public void init(FilterConfig filterConfig) {
}
public void destroy() {
}
}
web.xmlが見えます。それは、誰かが私を導くことができれば、私は本当に感謝のアクセスヘッダ
Request URL:http://localhost:8081/appUser
Request Method:GET
Status Code:404 Not Found
Remote Address:[::1]:8081
Response Headers
view source
Content-Length:965
Content-Type:text/html;charset=utf-8
Date:Sun, 19 Jun 2016 03:43:40 GMT
Server:Apache-Coyote/1.1
Request Headers
view source
Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Host:localhost:8081
Origin:http://localhost:63342
を許さ含むdoesntの。私は最後の5日間の傾きがこの仕事を得るように思わないので、立ち往生しました。私が参照できるブログ/チュートリアル/ビデオを指すことができるならば
に下に追加は、それを試してみました。うまくいきません – user3342812
httpリクエストに必要なオリジナルヘッダが含まれていないのですか? – user3342812