为什么同样的JSON请求在一些站点中失败?

时间:2015-12-14 10:03:51

标签: json wordpress ionic

我使用这些代码从wordpress网站获取json:

app.js

(function(){
  var app= angular.module('IKKS', ['ionic','ngCordova']);
app.controller('IKKSctrl',function($http, $scope){

$scope.stories=[];

$http.get('http://ikks.pergig.ir/?json=get_tag_posts&slug=feeding')
  .success(function(response){
    console.log(response);
    angular.forEach(response.posts, function(posts){
      $scope.stories.push (posts);    
    });
  });

});

和index.html文件中的这些代码

的index.html

<ion-content class="has-header">
      <div class="list">
        <a class="item item-thumbnail-right" 
        href="{{story.url}}" target="_blank"
        ng-repeat="story in stories">
        <img ng-src="{{story.thumbnail}}" ng-if("story.thumbnail.startwith('http')">
        <h2 class="story-title">{{story.title}}</h2>
        <p>{{story.date}}</p>
        </a>
     </div>
      </ion-content>

这些代码适用于KSRA.ir dowain,但将其更改为IKKs.pergig.ir。它会导致以下错误:

“的XMLHttpRequest不能加载http://ikks.pergig.ir/?json=get_tag_posts&slug=feeding。否‘访问控制允许来源’标题存在于所请求的资源。产地‘http://localhost:8100’,因此没有允许访问。”

如果启用了CROS扩展,则会显示以下消息

app.js:9

<html><body><script type="text/javascript" src="/aes.js" ></script><script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("b6e9798353d6283149378e3eea86cd42");document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; document.cookie="referrer="+escape(document.referrer); location.href="http://ikks.pergig.ir/?json=get_tag_posts&slug=feeding&ckattempt=1";</script><noscript>This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support</noscript></body></html>

我不明白为什么会这样?相同的代码在一个域中运行良好,但在其他域中有问题。

json请求还有一件事:http://ikks.pergig.ir/?json=get_tag_posts&slug=feeding在浏览器中运行良好。

1 个答案:

答案 0 :(得分:0)

这两个域之间的唯一区别是他们的PHP版本。似乎在较低版本(5.2和5.3)中,json api运行良好,返回结果良好。我找不到其他原因。