我在制作jsonp请求时没有遇到任何问题,但是我不确定如何设置一个Web服务来在jsonp中提供响应.
首先,是否需要以某种方式配置服务器以允许jsonp请求,或者页面是否必须正确格式化响应?
在我的测试中,我从geonames.org获得了以下jsonp响应(我在服务器/域1上放置了一个空白页面,没有别的):
PHP echo $_GET['callback'];?>({"postalcodes":[{"adminName2":"Westchester","adminCode2":"119","postalcode":"10504","adminCode1":"NY","countryCode":"US","lng":-73.700942,"placeName":"Armonk","lat":41.136002,"adminName1":"New York"}]});
在服务器/域2上,我发出以下请求:
$.ajax({
// works when I make the call to geonames.org instead of domain1
//url: 'http://www.geonames.org/postalCodeLookupJSON?postalcode=10504&country=US&callback=?',url: 'http://www.domain1.com/test/jsonp.PHP?callback=?',success: function(data) {
$('#test').html(data);
},});
将文件放在同一服务器(域1或2)上并将其转换为常规json请求时,调用有效.我究竟做错了什么?
只是为了澄清:我的问题与收到请求的页面有关.当我将它发送到geonames.org,flickr等时,我知道请求有效… apis.但是,我正在尝试设置一个页面来发送响应.在我的例子中,我只有一个带有硬编码jsonp的空白页面.我不确定我是否必须在页面上有其他标题或在我的服务器上启用了某些功能.