现在我试图从freecodecamp做一个随机引用生成器挑战。
但是,从网站上获取引用我遇到了很多麻烦
http://api.forismatic.com由于CORS ...然后我偶然发现了某人的解决方案,但我不明白为什么他在网址的末尾添加了查询jsonp=?
。
他创造了:
// Random Quote Generator
var url = "http://api.forismatic.com/api/1.0/?method=getQuote&key=457653&format=jsonp&lang=en&jsonp=?";
除最后jsonp=?
之外,我都会关注所有内容......
我知道必须有一个回调,我试图用callback=?
替换它
但后来出现了错误:
"Refuse to execute script from (data resource) because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled."
答案 0 :(得分:0)
根据http://forismatic.com/en/api/的文档:
jsonp =< string> - 回调函数名称,仅用于jsonp格式
所以他们只有一个jsonp
param,其他API用callback
完全相同。
所以给定method=getQuote&key=457653&format=jsonp&lang=en&jsonp=?
,文字“?
”就是API将作为回调函数名称返回的内容:
$ curl "http://api.forismatic.com/api/1.0/?method=getQuote&key=457653&format=jsonp&lang=en&jsonp=?"
?({"quoteText":"I have done my best: that is about all the philosophy of living one needs.","quoteAuthor":"Lin-yutang","senderName":"","senderLink":"","quoteLink":"http://forismatic.com/en/475d78775d/"})
换句话说,参数名称“callback
”并没有什么神奇之处 - 没有标准要求必须使用参数名称,因此任何API提供商都可以选择使用他们想要的任何名称 - 作为forismatic。 com选择了他们的API。