1.以简单的方式获取JSONP
fetchJsonp('/users.jsonp') .then(function(res) {
return res.json();
}).then(function(json) {
console.log('parsed json', json);
}).catch(function(ex) {
console.log('parsing failed', ex);
})
2.设置JSONP回调参数名称,默认为’回调’
fetchJsonp('/users.jsonp', {
jsonpCallback: 'custom_callback',
}) .then(function(res) {
return res.json();
}).then(function(json) {
console.log('parsed json', json);
}).catch(function(ex) {
console.log('parsing failed', ex);
})
3.设置JSONP回调函数名称,默认为带json_前缀的随机数
fetchJsonp('/users.jsonp', {
jsonpCallbackFunction: 'function_name_of_jsonp_response'
}).then(function(res) {
return res.json();
}).then(function(json) {
console.log('parsed json', json);
}).catch(function(ex) {
console.log('parsing failed', ex);
})
4.设置JSONP请求超时,默认为5000ms
fetchJsonp('/users.jsonp', {
timeout: 3000,
}).then(function(res) {
return res.json();
}).then(function(json) {
console.log('parsed json', json);
}).catch(function(ex) {
console.log('parsing failed', ex);
})
jsonpCallback和之间的区别jsonpCallbackFunction:
- jsonpCallback,默认值是callback;它是回调参数的名称
- jsonCallbackFunction,默认值是null;它是回调函数的名称。为了使它与众不同,它是一个带有jsonp_前缀的随机字符串jsonp_1497658186785_39551。如果由服务器设置,则将其留空,如果回调函数名称是固定的,则将其明确设置。
情况1:
fetchJsonp('/users.jsonp', {
jsonpCallback: 'cb'
})
请求URL将是/users.jsonp?cb=jsonp_1497658186785_39551,并且服务器应该响应以下函数:
jsonp_1497658186785_39551(
{ ...data here... }
)
情况2:
fetchJsonp('/users.jsonp', {
jsonpCallbackFunction: 'search_results'
})
请求URL将是/users.jsonp?callback=search_results,并且服务器应始终响应名为的函数search_results:
search_results(
{ ...data here... }
)