获取API请求仅返回null

时间:2017-05-09 01:42:52

标签: javascript json ecmascript-6

我正在了解Fetch API以及如何使用它。但是,当我使用有效的json向this page发出请求时,响应将返回null。我在codepen.io上发出这个请求所以我知道这涉及CORS。

const headers = new Headers();
const params = {
    method: 'GET',
    headers : headers,
    mode : 'no-cors'
}

const request = new Request( 'http://api.forismatic.com/api/1.0/method=getQuote&format=json&lang=en' );

fetch(request, params).then(function( response ){
    return response;
}).then( function( json ){
    console.dir(json.body);
});

Dev Tools中的请求返回:

Response
body : null
bodyUsed : false
headers :Headers
ok:false
redirected : false
status : 0
statusText : ""
type: "opaque"
url :""

来自MDN:

The Promise returned from fetch() won’t reject on HTTP error status even if the response is an HTTP 404 or 500. Instead, it will resolve normally (with ok status set to false), and it will only reject on network failure or if anything prevented the request from completing.

所以我想知道为什么我的请求中没有添加响应主体,我需要更改/添加什么来获取所请求的JSON的内容?

1 个答案:

答案 0 :(得分:0)

以下是使用no-cors的问题的参考。目前看来这对全局窗口对象不起作用。通过Postman它工作正常。

no-cors with fetch