Javascript 错误:[object object]/XMLHttpRequest在以JSON形式提取XML数据时无法在Angular2中加载
我试图将XML数据作为JSON拉入。执行此操作时,会出现以下错误: 无法加载XMLHttpRequest。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“” 此外,我的警报错误代码仅说明[对象] http-test.service.tsJavascript 错误:[object object]/XMLHttpRequest在以JSON形式提取XML数据时无法在Angular2中加载,javascript,json,xml,angular,xmlhttprequest,Javascript,Json,Xml,Angular,Xmlhttprequest,我试图将XML数据作为JSON拉入。执行此操作时,会出现以下错误: 无法加载XMLHttpRequest。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“” 此外,我的警报错误代码仅说明[对象] http-test.service.ts import { Injectable } from 'angular2/core'; import { Http } from 'angular2/http'; import 'rxjs/add/opera
import { Injectable } from 'angular2/core';
import { Http } from 'angular2/http';
import 'rxjs/add/operator/map';
import { AppComponent } from './app.component';
@Injectable()
export class HttpTestService{
constructor (private _http: Http){}
getData(){
return this._http.get('http://www.w3schools.com/xml/cd_catalog.xml')
.map(res => res.json());
}
http-test.component.ts
import {Component} from 'angular2/core';
import {HttpTestService} from './http-test.service';
import { AppComponent } from './app.component';
@Component({
selector: 'http-test',
template:`
<button (click)="onTestGet()">Test GET Request</button><br>
<p>Output:</p>
<textarea id="txtOut" rows="45" cols="100">{{getData}}</textarea>
`,
providers: [HttpTestService]
})
export class HttpTestComponent{
getData: any;
postData: string;
constructor (private _httpService: HttpTestService){}
onTestGet(){
this._httpService.getTeams()
.subscribe(
data => this.getData = JSON.stringify(data),
error => alert(error),
() => console.log("Finished")
);
}
}
从'angular2/core'导入{Component};
从“./http test.service”导入{HttpTestService};
从“./app.component”导入{AppComponent};
@组成部分({
选择器:“http测试”,
模板:`
测试获取请求
输出:
{{getData}}
`,
提供者:[HttpTestService]
})
导出类HttpTestComponent{
获取数据:任何;
postData:字符串;
构造函数(私有的_httpService:HttpTestService){}
onTestGet(){
这是.\u httpService.getTeams()
.订阅(
data=>this.getData=JSON.stringify(数据),
错误=>警报(错误),
()=>console.log(“完成”)
);
}
}
当我从JSON格式的URL(而不是XML)中提取时,此代码可以工作。不确定问题出在哪里,也不知道如何解决。谢谢
console.error('error!',error)
,以及某种flash消息服务。但是,您可能还希望在浏览器中签出“网络”选项卡console.error('error!',error)
,以及某种flash消息服务。但是,您可能还希望在浏览器中签出“网络”选项卡您会注意到,实际上服务器的响应是200 OK,但由于缺少标头,浏览器仍然会阻止XHR。如果您获取JSONP数据,或者服务器使用CORS标头,那么它会起作用,否则由于同源策略,它将不起作用。如果您获取JSONP数据,或者服务器使用CORS标头,那么它会起作用,否则,由于同源策略,它将无法工作。