2016-12-07 65 views
0
productsearch.service.ts 


import { Injectable } from '@angular/core'; 

import { URLSearchParams, Jsonp } from '@angular/http'; 

@Injectable() 

export class ProductsearchService { 

    private _url: string = 'app/apidata/products.json' 

    constructor(private jsonp: Jsonp) {} 

    search(term: string) { 
    console.log(this.term); 
    var search = new URLSearchParams() 

    search.set('action', 'opensearch'); 

    search.set('search', term); 

    search.set('format', 'json'); 

    return this.jsonp 

       .get('app/apidata/products.json?callback=JSONP_CALLBACK', { search}) 
       .map((request) => request.json()[1]); 
    } 

productsearch.component.ts得到錯誤的例外:狀態響應:200 OK的URL:未捕獲和

import {Component} from '@angular/core'; 
import { FormControl } from '@angular/forms'; 
import {Observable}  from 'rxjs/Observable'; 

import { ProductsearchService } from './productsearch.service'; 


@Component({ 
    selector:'app-productsearch', 
    template:`<h1>product search</h1> 
    <input type="text" [formControl]="term"> 
     <ul> 
     <li *ngFor="let p of products | async">{{p.ITEM}}</li> 
     </ul> 

    ` 

}) 

export class ProductsearchComponent{ 

products: Observable<Array<string>>; 
    term = new FormControl(); 
    constructor(private productsearchService: ProductsearchService){} 
    ngOnInit() { 
    this.products = this.term.valueChanges 
       .debounceTime(400) 
       .distinctUntilChanged() 
       .switchMap(term => this.productsearchService.search(term)); 
    } 

} 
} 

我創建的輸入按鈕products.json文件中搜索數據 但我得到的錯誤爲:

例外:對於狀態響應:200 OK的URL:應用程序/ apidata/products.json回調= ng_jsonp .__ REQ0。完成&行動= OpenSearch的&搜索= ASA &格式= JSON

Subscriber.ts:241未捕獲的響應{_body: 「JSONP注入腳本沒有援引回調。」,狀態:200 ,OK:真,狀態文本: 「OK」,標題:頭......

+0

products.json應該是有效的jsonp格式。是嗎 ? – anshuVersatile

回答

相關問題