Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Связка angular2 с API (https://javascript.ru/forum/server/67020-svyazka-angular2-s-api.html)

r1sus 23.01.2017 17:28

Связка angular2 с API
 
Передо мной стоит задача связать форму регистрации с api. Отправляю данные post запросом, но данные отправляются запросом options. Как я подозреваю, браузер в целях безопасности запрещает кросс-доменные запросы. Как мне быть в этой ситуации? Я должна еще что-то настроить в angular или это проблема на сервере? Это пример файла http.service.ts
export class HttpAddUserService {

constructor(private http: Http) { }

postData(obj: AddUser) {
    const body = JSON.stringify(obj);

    let headers = new Headers({ 'Content-Type': 'application/json' });

    return this.http.post('http://..../api/adduser', body, { headers: headers })
        .map((resp:Response)=>resp.json())
        .catch((error:any) =>{return Observable.throw(error);});
    }
}

TestUser013 23.01.2017 18:07

Добавьте заголовок Access-Control-Allow-Origin (от сервера).
https://developer.mozilla.org/en-US/...s_control_CORS

r1sus 23.01.2017 18:28

спасибо за совет,
не имею доступа к серверной стороне

TestUser013 23.01.2017 19:26

Если вы не хакир и не собираетесь взламывать интернет, то у вас только два пути:
1) Добавьте все таки нужный заголовок от сервера
2) Использовать только "простые" запросы.

Вот информация о простых запросах:
https://www.w3.org/TR/cors/#simple-method
https://www.w3.org/TR/cors/#simple-header

r1sus 23.01.2017 20:15

Спасибо за советы. Просто серверная часть на одном домене, делал один человек, а я делаю фронт на своём личном хостинге. Поняла что это так и должно происходить.
Когда файлы будут на одном домене надеюсь таких проблем не будет!
Спасибо ещё раз

TestUser013 24.01.2017 19:56

Для разработки можно воспользоваться плагинами типа cors toggle(для хрома) и cross domain - cors (для фокса). Может еще какие-то есть.

destus 25.01.2017 08:36

Цитата:

Сообщение от r1sus (Сообщение 442054)
спасибо за совет,
не имею доступа к серверной стороне

Для разработки и написания тестов можно воспользоваться заглушкой в виде MockBackend https://blog.thoughtram.io/angular/2...angular-2.html


Часовой пояс GMT +3, время: 12:15.