Tag: Cors

canvas.toDataURL()SecurityError

所以我使用谷歌地图,我得到的图片,所以它看起来像这样 <img id="staticMap" src="http://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=13&size=600×300&maptype=roadmap &markers=color:blue%7Clabel:S%7C40.702147,-74.015794&markers=color:green%7Clabel:G%7C40.711614,-74.012318 &markers=color:red%7Ccolor:red%7Clabel:C%7C40.718217,-73.998284&sensor=false"> 我需要保存它。 我发现这个: function getBase64FromImageUrl(URL) { var img = new Image(); img.src = URL; img.onload = function() { var canvas = document.createElement("canvas"); canvas.width = this.width; canvas.height = this.height; var ctx = canvas.getContext("2d"); ctx.drawImage(this, 0, 0); var dataURL = canvas.toDataURL("image/png"); alert(dataURL.replace(/^data:image\/(png|jpg);base64,/, "")); }; } 但是我得到这个问题: Uncaught SecurityError:无法执行“HTMLCanvasElement”上的“toDataURL”:受污染的canvas可能无法导出。 我寻找修复。 我在这里find了一个示例如何使用CORS,但我仍然不能将这两个代码绑在一起,使其工作。 也许我做错了,有一个更简单的方法来做到这一点? 我试图保存这张照片,以便我可以将数据传输到我的服务器。 […]

CORS:当凭证标志为true时,不能在Access-Control-Allow-Origin中使用通配符

我有一个设置涉及 前端服务器(Node.js,domain:localhost:3000)<—>后端(Django,Ajax,域名:localhost:8000) 浏览器< – webapp < – Node.js(服务应用程序) 浏览器(webapp) – > Ajax – > Django(服务ajax POST请求) 现在,我的问题在于CORS设置,Web应用程序使用Ajax调用后端服务器。 在铬,我不断得到 当凭证标志为真时,不能在Access-Control-Allow-Origin中使用通配符。 也不能在Firefox上工作。 我的Node.js设置是: var allowCrossDomain = function(req, res, next) { res.header('Access-Control-Allow-Origin', 'http://localhost:8000/'); res.header('Access-Control-Allow-Credentials', true); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); next(); }; 在Django中,我正在使用这个中间件 Web应用程序提出请求: $.ajax({ type: "POST", url: 'http://localhost:8000/blah', data: {}, xhrFields: { withCredentials: true }, […]

如何使用JAX-RS和Jersey处理CORS

我正在开发一个Java脚本客户端应用程序,在服务器端,我需要处理CORS,我用JERSEY写在JAX-RS上的所有服务。 我的代码: @CrossOriginResourceSharing(allowAllOrigins = true) @GET @Path("/readOthersCalendar") @Produces("application/json") public Response readOthersCalendar(String dataJson) throws Exception { //my code. Edited by gimbal2 to fix formatting return Response.status(status).entity(jsonResponse).header("Access-Control-Allow-Origin", "*").build(); } 截至目前,我收到错误没有“访问控制允许来源”标题出现在请求的资源。 原因' http:// localhost:8080 '因此不被允许访问。“ 请帮助我。 感谢和问候佛Puneeth

从iframe访问父url

好吧,我在这个页面上有一个页面,我有一个iframe。 我需要做的是在iframe页面上,找出主页的URL是什么。 我周围search,我知道这是不可能的,如果我的iframe页面是在不同的域,因为这是跨站点脚本。 但是,我读过的每个地方都说,如果iframe页面与父页面在同一个域中,那么它应该可以工作,例如: parent.document.location parent.window.document.location parent.window.location parent.document.location.href …或其他类似的组合,因为似乎有多种方式来获得相同的信息。 无论如何,所以这是问题。 我的iframe与主页面位于同一个域,但不在同一个SUB域。 所以,例如,我有 http:// www.mysite.com/pageA.html 然后我的iframe的URL是 http:// qa-www.mysite.com/pageB.html 当我尝试从pageB.html (iframe页面)抓取URL时,我一直得到相同的拒绝访问错误。 所以看来,即使是子域算作跨站点脚本,是正确的,还是我做错了什么?

在尝试从REST API获取数据时,请求的资源上没有“Access-Control-Allow-Origin”标头

我试图从HP Alm的REST API中获取一些数据。 它用一个小curl脚本很好 – 我得到我的数据。 现在用JavaScript来做,取和ES6(或多或less)似乎是一个更大的问题。 我不断收到此错误消息: 抓取API无法加载。 对预检请求的响应不会通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 原因' http://127.0.0.1:3000 '因此不被允许访问。 响应的HTTP状态码为501.如果一个不透明的响应满足您的需要,请将请求的模式设置为“no-cors”,以取消禁用CORS的资源。 我知道这是因为我试图从我的本地主机获取数据,解决scheme应该使用CORS。 现在我以为我确实是这样做的,但是不知怎么的,要么忽略我在标题中写的东西,要么问题是其他的东西? 那么,是否有执行问题? 我做错了吗? 我不能检查服务器日志不幸的。 我真的有点卡在这里。 function performSignIn() { let headers = new Headers(); headers.append('Content-Type', 'application/json'); headers.append('Accept', 'application/json'); headers.append('Access-Control-Allow-Origin', 'http://localhost:3000'); headers.append('Access-Control-Allow-Credentials', 'true'); headers.append('GET', 'POST', 'OPTIONS'); headers.append('Authorization', 'Basic ' + base64.encode(username + ":" + password)); fetch(sign_in, { //mode: 'no-cors', credentials: 'include', method: […]

如何在AngularJs中启用CORS

我已经使用JavaScript为Flickr照片searchAPI创build了一个演示。 现在我把它转换成AngularJs。 我在互联网上search,find下面的configuration。 组态: 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); }); }); 但是我仍然有同样的错误。 这里有一些我试过的链接: […]

与PHP头的CORS

我有一个简单的PHP脚本,我正在尝试跨域CORS请求: <?php header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Headers: *"); … 但我仍然得到错误: Access-Control-Allow-Headers不允许请求头字段X-Requested-With 任何我失踪?

如何允许CORS?

我正在尝试在使用Express.js Web框架的Node.js应用程序中支持CORS。 我已经阅读了关于如何处理这个问题的Google小组讨论 ,并阅读了一些关于CORS如何工作的文章。 首先,我这样做了(代码是用CoffeeScript语法编写的): app.options "*", (req, res) -> res.header 'Access-Control-Allow-Origin', '*' res.header 'Access-Control-Allow-Credentials', true # try: 'POST, GET, PUT, DELETE, OPTIONS' res.header 'Access-Control-Allow-Methods', 'GET, OPTIONS' # try: 'X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept' res.header 'Access-Control-Allow-Headers', 'Content-Type' # … 这似乎并不奏效。 好像我的浏览器(Chrome)没有发送初始的OPTIONS请求。 当我刚刚更新资源块时,我需要提交一个跨源GET请求到: app.get "/somethingelse", (req, res) -> # … res.header 'Access-Control-Allow-Origin', '*' res.header 'Access-Control-Allow-Credentials', true res.header […]

如何获得跨源资源共享(CORS)的后期请求工作

我有一台机器在我的本地局域网(machineA)有两个Web服务器。 第一个是XBMC的内置(在8080端口),并显示我们的图书馆。 第二个服务器是一个CherryPy python脚本(端口8081),我用它来触发文件转换的需求。 文件转换由来自XBMC服务器提供的页面的AJAX POST请求触发。 转到http:// machineA:8080显示库 图书馆被显示 用户点击“转换”链接发出以下命令 – jQuery的Ajax请求 $.post('http://machineA:8081', {file_url: 'asfd'}, function(d){console.log(d)}) 浏览器使用以下标题发出HTTP OPTIONS请求; 请求标题 – 选项 Host: machineA:8081 User-Agent: … Firefox/4.01 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive Origin: http://machineA:8080 Access-Control-Request-Method: POST Access-Control-Request-Headers: x-requested-with 服务器响应以下内容; 响应标题 – 选项(状态= 200确定) Content-Length: 0 Access-Control-Allow-Headers: * Access-Control-Max-Age: 1728000 […]

使用jQuery AJAX加载跨域端点

我试图加载使用AJAX的跨域HTML页面,但除非数据types是“jsonp”我无法得到响应。 然而,使用jsonp浏览器期待脚本MIMEtypes,但接收“文本/ HTML”。 我的请求代码是: $.ajax({ type: "GET", url: "http://saskatchewan.univ-ubs.fr:8080/SASStoredProcess/do?_username=DARTIES3-2012&_password=P@ssw0rd&_program=%2FUtilisateurs%2FDARTIES3-2012%2FMon+dossier%2Fanalyse_dc&annee=2012&ind=V&_action=execute", dataType: "jsonp", }).success( function( data ) { $( 'div.ajax-field' ).html( data ); }); 有没有办法避免使用jsonp的请求? 我已经尝试使用crossDomain参数,但它没有工作。 如果不是有什么办法在jsonp中接收html内容? 目前控制台在jsonp回复中说“unexpected”。