【发布时间】: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&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 个帖子。