gpt4 book ai didi

javascript - Angular 7 中的 HTTP GET 请求返回错误(状态 200)

转载 作者:行者123 更新时间:2023-11-30 19:41:19 25 4
gpt4 key购买 nike

我相信我正在从维基媒体 API 取回一个对象,但是我不知道如何解析它以显示它。

//app.component.ts

import { Component } from '@angular/core';
import { HttpClient, HttpParams } from '@angular/common/http';
import { Post } from './post';
import { Observable } from 'rxjs/Observable';

@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})

export class AppComponent {
title = 'Wiki Search';
// readonly ROOT_URL = 'https://en.wikipedia.org/w/api.php?action=query&list=search&srsearch=japan&origin=*&format=json';
readonly ROOT_URL = 'https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrnamespace=0&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch=Harry Potter&origin=*&callback=JSON_CALLBACK';
// https://en.wikipedia.org/w/api.php?action=query&format=json&gsrlimit=15&generator=search&origin=*&gsrsearch=japan"


posts: Observable<any>;

constructor(private http: HttpClient) {}

getPosts(){
this.posts = this.http.get(this.ROOT_URL)
}
}

//app.component.html
<input type="text" placeholder="Search for pages..">
<button (click)="getPosts()">Get Posts</button>
<div *ngFor="let post of posts | async">
{{ post | json }}
</div>

<ul class=filter-select>
<li class="filter-select-list">
<p class="wiki-page"></p>
</li>
</ul>

如果我将 responseType: text 插入到响应处理程序中,我能够在开发控制台中将返回的数据读取为错误。

最佳答案

您调用的 URL 以 queryString 参数结尾 callback=JSON_CALLBACK

https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrnamespace=0&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch=Harry%20Potter&origin=*&callback=JSON_CALLBACK

这是将 JSON 包装在一个名为 JSON_CALLBACK 的回调方法中,这不是有效的 JSON,并且不允许解析。我尝试不使用该 queryString 参数,现在响应是一个有效的纯 JSON,您应该能够解析它

https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrnamespace=0&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch=Harry%20Potter&origin=*

关于javascript - Angular 7 中的 HTTP GET 请求返回错误(状态 200),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55367739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com