AngularJS http.jsonp无法从自定义PHP代理响应中找到JSON_CALLBACK

时间:2014-11-07 09:49:31

标签: javascript php json angularjs proxy

我正在尝试从Readability获得一个简单的JSON回复,使用可读性API的直接链接可以正常工作,例如:

$http.jsonp('https://www.readability.com/api/content/v1/parser?url='+url+'&token='+token+'&callback=JSON_CALLBACK').success(function(data) { ... etc

但是在使用我自己的“代理”时不起作用:

<?php
    header('Content-Type: application/json');
    print file_get_contents('https://www.readability.com/api/content/v1/parser?url='.urlencode($_GET['url']).'&token='.$token.'&callback=JSON_CALLBACK');
?>

使用:

$http.jsonp('parser.php?url='+url).success(function(data) { ...

我也尝试过使用curl并复制所有标题等等。我不明白,为什么http.jsonp无法从我自己的代理中找到变量JSON_CALLBACK?

1 个答案:

答案 0 :(得分:0)

在调用JSON_CALLBACK期间替换了

angular.callbackSomething,并且您的PHP使用了硬编码JSON_CALLBACK,所以当angular尝试运行callbackSomething时,jsonp没有使用此方法的函数,希望有意义

print file_get_contents('https://www.readability.com/api/content/v1/parser?url='.urlencode($_GET['url']).'&token='.$token.'&callback='.$_GET['callback']);