2016-10-18 9 views
0

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

public getRawFile(rawLink: string) { 
    return this.http.get(rawLink).map((res: Response) => res.text()); 
    } 

Но сейчас я хотел бы получить код из притона необработанного файла, но из личного хранилища. Если пользователь имеет доступ (зарегистрирован в тайнике), то загружается исходный код из сырого файла.

Если я пытаюсь так же, я получаю respone:

XMLHttpRequest cannot load 'private_stash_file_link'. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. 
    EXCEPTION: Response with status: 0 for URL: null 
    Uncaught Response with status: 0 for URL: null 

Как я могу справиться с этим, печенье, конкретные варианты для запроса GET, это даже возможно?

EDIT 1.

Пробовал:

public getRawFile(link: string) { 
    let headers = new Headers(); 
    headers.append('Access-Control-Allow-Headers', 'Content-Type'); 
    headers.append('Access-Control-Allow-Methods', 'GET, OPTIONS'); 
    headers.append('Access-Control-Allow-Origin', '*'); 
    let options = new RequestOptions({headers: headers, withCredentials: true}); 
    return this.http.get(link, options).map((res: Response) => res.text()); 
    } 

но тот же результат для частного хранилища ..

plunker

ответ

0

Сервер, который вы делаете запрос должен внедрить CORS для предоставления JavaScript с вашего доступа к веб-сайту (совместное использование ресурсов (CORS)). Так что если у вас есть доступ к месту, где вы выскабливание, а затем добавьте следующие заголовки HTTP в ответ на приемном конце:

Access-Control-Allow-Headers: Content-Type 
Access-Control-Allow-Methods: GET, POST, OPTIONS 
Access-Control-Allow-Origin: *.example.com 

Не забудьте заменить «* .example.com» с доменным именем хост, который отправляет данные/получает данные. Это должно решить вашу проблему.

+0

Я пробовал как в РЕДАКТИРОВАНИИ 1, но он не работает, что еще. Теперь у меня есть статус http 400 для публичного репо, я что-то не так? – ulou

+0

Вы уверены, что сервер, получающий ваш запрос, имеет настройку CORS? – pretzo246

+0

https://plnkr.co/edit/ogDayyIOEbOLkI8XBzOX?p=preview – ulou