当我更改http.jsonp()URL时,JSON数据不显示

时间:2015-07-13 17:54:20

标签: javascript json angularjs

我尝试使用AngularJS从外部JSON文件中读取数据。

这是我的HTML

<div class="panel panel-default" ng-controller="MyAppController">
    <div class="panel-heading">
        <div class="input-group">
            <input ng-model="query" type="text" placeholder="What file are you looking for?" class="form-control"><span ng-click="clearFilter()" ng-disabled="query.length == 0" class="input-group-addon"><i class="glyphicon glyphicon-remove"></i></span>
        </div>
    </div>
    <div class="panel list-group">
        <span data-ng-repeat="cat in cats | filter: query" class="list-group-item animate-repeat">{{cat.title}}
    </span>
        <div class="clearfix"></div>
    </div>
</div>

当我在我的JS文件中使用它并且数据显示在列表中时,它工作正常。

function MyAppController($scope, $http) {     
    var url = 'http://jobs.github.com/positions.json?callback=JSON_CALLBACK';
    $http.jsonp(url).success(function(data) {
        $scope.cats = data;
    });
}

但是当我将URL更改为我的个人网站时,即使我只是将github JSON文件中的所有内容复制并粘贴到本地JSON文件中,也没有显示任何内容。 (只是为了测试它)

function MyAppController($scope, $http) {     
    var url = 'http://ciagent.com/Website-files/positions.json?callback=JSON_CALLBACK';
    $http.jsonp(url).success(function(data) {
        $scope.cats = data;
    });
}

http://ciagent.com/Website-files/positions.json?callback=JSON_CALLBACK&amp; http://jobs.github.com/positions.json?callback=JSON_CALLBACK具有相同的确切内容,但由于某种原因,只有github与我的角度应用程序一起使用。

为什么要这样做?

2 个答案:

答案 0 :(得分:3)

假设您使用的是静态资源文件,您需要意识到字符串$http.jsonp()是一个占位符,并在每个callback请求中被修改为其他内容。

您应该可以在浏览器开发工具的网络标签中的实际请求网址中看到这一点。

你也可以在浏览器中打开github版本并更改值,看它在服务器上是不是静态的,并且会调整为发送的任何值。

如果你想使用jsonp服务器端,它需要返回Dim Cn As ADODB.Connection Dim RS As ADODB.Recordset DBFullName = ThisWorkbook.Path & "\" & ThisWorkbook.Name Cnct = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & DBFullName & "';" & _ "Extended Properties='Excel 12.0 Macro;ReadOnly=0;HDR=Yes'" Set Cn = New ADODB.Connection Cn.Open ConnectionString:=Cnct ‘ Method #1 strSQL = “UPDATE StatusData SET [Last Update]=#2014-10-02 12:00:00# WHERE [Program Category]='Cat' AND [Program Name]='Prog' AND [LN] IS NULL AND [SN]='sn';” Cn.Execute strSQL, RecordsAffected, adExecuteNoRecords GET参数值的动态值。

答案 1 :(得分:1)

+1 @charlietfl说的话。另外,请务必在回复标题中设置Content-Type:application/javascript;charset=utf-8