2016-01-11 8 views
0

Я использую Angular.js с AppEngine на Java.
Для каждого запроса HTTP Angular.js выдает запрос OPTIONS перед фактическим запросом, который возвращает ошибку HTTP 404 для меня.
Неужели кто-нибудь скажет мне, почему?404 для метода OPTIONS в Google AppEngine с Java и Angular.js

В программе AppEngine, как включить конфигурацию для метода OPTIONS?

Редактировать: Я создал фильтр для обработки запроса OPTIONS. Теперь я добавляю Заголовок с GET, POST, DELETE, PUT, OPTIONS, HEAD в качестве значения и ответа со статусом . Но все же он показывает 404.

+0

это зависит от структуры вашей серверной части. который вы используете? и это не просто «включить», вы должны написать обработчик для такого запроса. может быть простым сервлетом, но –

+0

Я использую Google App Engine с облачными конечными точками Google. – Harikrishnan

+0

Теперь, я отвечаю 200 OK с заголовками, установленными как Allow: GET, POST, DELETE, PUT, OPTIONS, HEAD. пока он показывает 404 – Harikrishnan

ответ

0

Наконец-то он работал. я написал такой код:

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 
    HttpServletResponse resp = (HttpServletResponse) response; 
    HttpServletRequest req = (HttpServletRequest) request; 
    resp.setHeader("Cache-Control", "max-age=3600"); 
    resp.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); 
    resp.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE, OPTIONS"); 
    resp.setHeader("Access-Control-Allow-Origin", "www.myapp.com"); 
    resp.setHeader("Access-Control-Allow-Credentials", "true"); 
    if (req.getMethod().equals("OPTIONS")) { 
     resp.flushBuffer(); 
    } else { 
     chain.doFilter(request, resp); 
    } 
} 

Я просто написал resp.setHeader ("Access-Control-Allow-Origin", "*"); до. После написания всех заголовков он начал работать.

+0

'resp.setHeader (« Access-Control-Allow-Origin »,« * »)' не изменяет поведение сервера на 404. и вам не нужно размещать заголовки CORS для чего угодно, кроме ВАРИАНТ. также '*' происхождение небезопасно –

+0

Благодарим вас за предложение. Я изменю его. – Harikrishnan