Javascript 跨域ajax使用脚本标记
我阅读和阅读。如何使用脚本标记跨域查询以下内容:Javascript 跨域ajax使用脚本标记,javascript,jquery,cross-domain,script-tag,Javascript,Jquery,Cross Domain,Script Tag,我阅读和阅读。如何使用脚本标记跨域查询以下内容: var nytimes_api = 'http://api.nytimes.com/svc/semantic/v2/concept/article/2010/10/06/business/media/06tribune.json?&fields=article_list&api-key=4949d84e6ed8e55dbd7352d88da21f6d:9:65735612'; // returns JSON // code acc
var nytimes_api = 'http://api.nytimes.com/svc/semantic/v2/concept/article/2010/10/06/business/media/06tribune.json?&fields=article_list&api-key=4949d84e6ed8e55dbd7352d88da21f6d:9:65735612'; // returns JSON
// code accessing nytimes_url
// and retrieving data from it
谢谢。研究JSONP,看看《纽约时报》API是否支持它,以及如何使用它 参考文章: 谷歌搜索JSONP提供了更多的参考资料 简而言之,JSONP使用带有参数的自定义URL向远程站点发出脚本请求。通常,其中一个参数是您的javascript函数名,返回的javascript在拥有数据时将调用该函数名。因此,您对远程站点发出脚本请求。远程服务器获取脚本请求。它从URL解析出参数,以查看您要求它做什么。其中一个参数是javascript函数名。然后,远程服务器返回一些javascript。javascript的一部分通常是您请求的数据和对URL中指定的javascript函数名的调用。当浏览器执行返回的javascript时,您的函数调用将以请求的数据作为参数进行调用 如何返回数据的细节取决于API的实现者,您必须从《纽约时报》API描述中获得
您只能将此JSONP技术与明确支持它的API一起使用。为了按照您描述的方式使用脚本标记,您请求数据的API需要支持。更具体地说,它需要支持传递一个参数,例如
?callback=myFunction
,然后将其输出包装到该函数中,以便您可以将数据作为脚本执行
例如,如果/api.json
返回如下内容:
{'name': 'Bob'}
您需要/api.json?callback=myFunction
才能返回:
myFunction({'name': 'Bob'});
然后,您可以使用类似的方法为您处理脚本创建
不幸的是,《纽约时报》API目前似乎不支持JSONP,尽管有一个新的版本
为了在不使用JSONP的情况下使用此API,您需要一些服务器端组件来为您发出请求。NYTimes是否返回纯JSON?如果是这样的话,您链接到的文章中的JSONP技术将不起作用。如果NYTimes设置为处理JSON-P,那么您可以使用jQuery轻松调用它:看看关于JSONP的内容。(您提到的技术不是真正的Ajax,只是——特别是对于像jQuery这样的库——您的代码可以以类似的方式使用它。)《纽约时报》不支持JSONP;这只是JSONOk,感谢您对JSONP的清晰解释。我以前对它的理解还不清楚,但现在我认识到《纽约时报》不支持JSONP,所以我想这条路线行不通。