【问题标题】:why same JSON Requests fail in ionic for some sites?为什么相同的 JSON 请求在某些网站的 ionic 中失败?
【发布时间】:2016-03-19 18:22:47
【问题描述】:

我使用这些代码从 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。请求的资源上不存在'Access-Control-Allow-Origin'标头。因此不允许访问源'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&amp;slug=feeding 在浏览器中运行良好。

【问题讨论】:

  • 我认为信息非常明确:“此站点需要 Javascript 才能运行,请在您的浏览器中启用 Javascript 或使用支持 Javascript 的浏览器”。你用的是哪个浏览器?或者是否有任何文件阻止 javascipt 运行?
  • 我使用谷歌浏览器和 Canary。如果我将这个命令“'ikks.pergig.ir/?json=get_tag_posts&slug=feeding'”放在地址栏上,它会向我显示 json 文件,但在 ionic 应用程序中,如果我将域名更改为其他 wordpress 站点,它也不起作用,例如 'ksra.ir/?json=get_tag_posts&slug=news ' 它将在浏览器和离子运行时结果中返回 4 个帖子。

标签: json wordpress ionic


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    相关资源
    最近更新 更多