Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //i wrote a simple django rest framework app that requires a request like this
- ```python
- import requests
- token = 'dfacbbd0718c4f152e3914ff70be81f8c9a4c8f5'
- headers = {
- 'Authorization': 'Token ' + token
- }
- r = requests.get('http://localhost:8000/backend/api/declarations/',
- headers=headers)
- print(r._content)
- ```
- //then i use angular4 to login and it is succesfull (with CORSE plugin for firefox)
- login(username: string, password: string): Observable<boolean> {
- let headers = new Headers({ 'Content-Type': 'application/json'});
- let options = new RequestOptions({ headers: headers });
- return this.http.post('http://localhost:8000/backend/users/login/', JSON.stringify({username: username, password: password}), options)
- .map((response: Response) => {
- console.log(response.json());
- // login successful if there's a jwt token in the response
- let token = response.json() && response.json().token;
- let session_cookie_name = response.json() && response.json().session_cookie_name;
- let session_cookie_key = response.json() && response.json().session_cookie_key;
- let session_cookie_expire = response.json() && response.json().session_cookie_expire;
- let session_cookie_path = response.json() && response.json().session_cookie_path;
- let session_cookie_domain = response.json() && response.json().session_cookie_domain;
- if (token) {
- // set token property
- this.token = token;
- // store username and jwt token in local storage to keep user logged in between page refreshes
- localStorage.setItem('currentUser', JSON.stringify({ username: username, token: token }));
- // return true to indicate successful login
- return true;
- } else {
- // return false to indicate failed login
- return false;
- }
- });
- }
- //problem starts when i want to get data using token
- import { Component, OnInit } from '@angular/core';
- import {DeclarationService} from '../declaration/declaration.service';
- import {Declaration} from '../declaration/declaration/declaration';
- import {Http, Headers, RequestOptions} from '@angular/http';
- @Component({
- selector: 'app-declaration-list',
- templateUrl: './declaration-list.component.html',
- styleUrls: ['./declaration-list.component.css']
- })
- export class DeclarationListComponent implements OnInit {
- declarations: Declaration[] = [];
- declarationsNegative: Declaration[] = [];
- declarationsPositive: Declaration[] = [];
- // headers: Headers;
- constructor(public declarationService: DeclarationService, public http: Http) { }
- getAuthorizationHeader(): Headers {
- let headers = new Headers({ 'Content-Type': 'application/json' });
- console.log(JSON.parse(localStorage.getItem('currentUser')).token);
- headers.append('Authorization', 'Token dfacbbd0718c4f152e3914ff70be81f8c9a4c8f5');
- let options = new RequestOptions({ headers: headers });
- return headers;
- }
- getDeclarations(): void {
- let headers: Headers;
- headers = this.getAuthorizationHeader();
- let options = new RequestOptions({ headers: headers });
- this.http.get('http://localhost:8000/backend/api/declarations/',
- options)
- .subscribe(response => {
- this.declarations = response.json();
- console.log(this.declarations);
- });
- }
- ngOnInit() {
- this.getDeclarations();
- console.log(this.declarations);
- }
- }
- //i get this fucking shit
- Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8000/backend/api/declarations/. (Reason: CORS preflight channel did not succeed).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement