2016-12-26 2 views
1

aurelia-http-client와 같은 원점이 아닌 API를 쿼리하려고합니다. 아주 간단aurelia aurelia-http-client jsonp

내 코드 : 아무런 변화가 없습니다

import {HttpClient} from 'aurelia-http-client'; 

export class App { 

    constructor(){ 

    console.log("constructor called"); 

     let url = 'http://localhost:8081/all'; 

     let client = new HttpClient(); 

     client 
      .jsonp(url) 
      .then(data => { 
       console.log("datas"); 
       console.log(data); 
      }); 

    } 

} 

, 내가 URL을 호출 할 때 네트워크에서 볼 수있는, 내 API를 엔진이 엔트리를 기록하지만 난 "약속"의 "다음"에 입력하지 ...

무엇이 잘못 되었나요?

업데이트 :

내가 같은 기계 아무런 문제에서 jQuery로 캐치

code source browser result

당신에게 스크린 샷을 제공합니다.

+0

당신은 코드가 잘 보인다 ...'jsonp'에 대한 어떤 특별한 이유? 'get'과 함께 작동합니까? –

+0

안녕하세요 fabio, 그렇습니다. 페이지가 다음과 같이 가치가 있기 때문에 : 9000, 내 API는 8081입니다. 프로덕션에서는 2 가지 다른 시스템을 사용합니다. jQuery와 함께 시도하고 jsonp 데이터를 얻는데 문제가 없다. 나는 아마도 다른 라이브러리로 시도하기 위해 2 시간을 낭비하지만 타이프 스크립트로 작업하기에는 약간 복잡합니다 ... 처음에는 아우렐 리아로 시도해 봅니다. 2 시간 후에는 내 페이지를 완성했을 것이므로 마지막으로 시도해보십시오. –

+0

a. 해당 문 끝에 catch (() =>)를 사용하여 약속에 의해 오류가 생성되었는지 확인합니다. –

답변

3

이 게시물을 읽은 후 other jsonp case 나는 "콜백"작업을 추가하려고 시도하고 지금은 작동합니다!

그래서 오히려 내가 같이 아우렐 리아의 API를 사용합니다,

0

이것은 직접적인 대답하지만, 단지 제안을하지 않을 수 있습니다 ('콜백'URL)

client.jsonp(url, 'callback') 

감사 JSONP 호출 더 일관되고 안정적이라는 것을 발견했습니다.

단지 주 당신의 플러그인으로 추가 :

.plugin('aurelia-api', config => { 
     config.registerEndpoint('github', 'https://api.github.com/'); 
    }); 

과로 사용 : 수입에서 {엔드 포인트} '아우렐 리아-API'

@autoinject 
export class Users{ 
    constructor(private githubEndpoint){ 
    } 

    activate() { 
    return this.githubEndpoint.find('users') 
     .then(users => this.users = users); 
    } 
} 

출처 : https://aurelia-api.spoonx.org/Quick%20start.html