我已经使用JavaScript为Flickr照片搜索API创建了一个演示。现在我把它转换成AngularJs。我在网上搜索了一下,找到了下面的配置。
配置:
myApp.config(function($httpProvider) {
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
});
服务:
myApp.service('dataService', function($http) {
delete $http.defaults.headers.common['X-Requested-With'];
this.flickrPhotoSearch = function() {
return $http({
method: 'GET',
url: 'http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=3f807259749363aaa29c76012fa93945&tags=india&format=json&callback=?',
dataType: 'jsonp',
headers: {'Authorization': 'Token token=xxxxYYYYZzzz'}
});
}
});
控制器:
myApp.controller('flickrController', function($scope, dataService) {
$scope.data = null;
dataService.flickrPhotoSearch().then(function(dataResponse) {
$scope.data = dataResponse;
console.log($scope.data);
});
});
但是我仍然得到了同样的错误。以下是我尝试过的一些链接:
XMLHttpRequest无法加载URL。访问控制不允许原点允许原点
http://goo.gl/JuS5B1
尝试使用资源服务使用flickr jsonp:
var MyApp = angular.module('MyApp', ['ng', 'ngResource']);
MyApp.factory('flickrPhotos', function ($resource) {
return $resource('http://api.flickr.com/services/feeds/photos_public.gne', { format: 'json', jsoncallback: 'JSON_CALLBACK' }, { 'load': { 'method': 'JSONP' } });
});
MyApp.directive('masonry', function ($parse) {
return {
restrict: 'AC',
link: function (scope, elem, attrs) {
elem.masonry({ itemSelector: '.masonry-item', columnWidth: $parse(attrs.masonry)(scope) });
}
};
});
MyApp.directive('masonryItem', function () {
return {
restrict: 'AC',
link: function (scope, elem, attrs) {
elem.imagesLoaded(function () {
elem.parents('.masonry').masonry('reload');
});
}
};
});
MyApp.controller('MasonryCtrl', function ($scope, flickrPhotos) {
$scope.photos = flickrPhotos.load({ tags: 'dogs' });
});
模板:
<div class="masonry: 240;" ng-controller="MasonryCtrl">
<div class="masonry-item" ng-repeat="item in photos.items">
<img ng-src="{{ item.media.m }}" />
</div>
</div>
我有一个类似的问题,对我来说,它归结为在接收端的响应中添加以下HTTP头:
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Origin: *
您可能不希望在结尾使用*
,而只使用发送数据的主机的域名。比如*.example.com
但这只有在您可以访问服务器的配置时才可行。
你不知道。您发出请求的服务器必须实现CORS以从您的网站访问授予JavaScript。您的JavaScript不能授予自己访问另一个网站的权限。
问题内容: 我使用Flickr照片搜索API的JavaScript创建了一个演示。现在,我将其转换为AngularJs。我在互联网上搜索,发现下面的配置。 组态: 服务: 控制器: 问题答案: 你不知道 您请求的服务器必须实现CORS才能从您的网站访问权限中授予JavaScript。您的JavaScript无法授予自己访问其他网站的权限。
问题内容: 访问https://github.com/gsklee/ngStorage。 我的代码有2个局部变量,在partial1中,我有3个输入框,在其中输入的数据是’abc’,’pqr’,’xyz’,单击按钮后,我想重定向到partial2,其中输入框如下所示在控制器“ abcpqr”,“ abxy”中计算的详细信息。 两个partials都使用localStorage [ngStorage
问题内容: 我正在尝试使用简单的jQuery UI。我已经包含了所有内容,并且有一个简单的脚本: 和 我的包括: 但是,当我打开页面时,没有滑块。根据角度文件: 如果有jQuery,则angular.element是jQuery函数的别名。如果jQuery不可用,则angular.element委托给Angular的内置jQuery子集。 但是,我不太了解如何使用,也没有示例。 更新: 我设法在屏
问题内容: 我正在尝试使用jquery提出跨源请求,但它一直被消息拒绝 XMLHttpRequest无法加载http:// …请求的资源上不存在“ Access-Control-Allow-Origin”标头。因此,不能访问Origin…。 我正在使用flask,heroku和jquery 客户端代码如下所示: 在heroku方面,我正在使用flask,就像这样 问题答案: 当我部署到Heroku
问题内容: 我有angularJS 1.5.0-rc.2 我在互联网上发现可以使用该指令 但这不会禁用按钮。 我试过的 在我的控制器中,loaded定义为$ scope.loaded = false。 如何禁用按钮?谢谢 问题答案: 仅当表达式为 true时, 该按钮才会被禁用。
问题内容: 我正在尝试使用一些跨域的Web服务。当我停用chrome的网络安全功能时,它的运行状况良好。我希望它在没有此功能的情况下工作,因此我尝试添加cross- domain.xml,但仍然无法正常工作。当我进行更多搜索时,开始了解有关tomcat中启用CORS的信息。 来自 http://www.w3.org/wiki/CORS_Enabled 对于Apache,可以将Apache配置为使用