Tag: 的跨域

在getJSON调用中处理错误

如何处理getJSON调用中的错误? 我试图引用跨域脚本服务使用jsonp,你如何注册一个错误的方法?

Facebook:不安全的JavaScript问题(document.domain值应该是相同的)

我是一个基于canvas的FB应用程序。 面对Chrome和Firefox的问题(尽pipe通常是Chrome): 1.当我在新的隐身Chrome浏览器窗口( https://apps.facebook.com/myfbappnamespace/ )上打开我的批准的fb应用安全url时,下面的错误只是第一次,而当我刷新页面错误已经走了(大部分时间) 在about:blank页面显示来自http://static.ak.facebook.com/connect/xd_arbiter.php?version=18#cb=f2e4fe7b … os.com%2Ff4aeadb2&domain = www.mydomain.com&relation = parent&error =未知用户。 不安全的JavaScript尝试访问来自带有URL的框架的URL http://www.mydomain.com/control/myfacebookapp/ http://static.ak.facebook.com/connect/xd_arbiter.php?version=18#cb= f2e4fe7b … os.com%2Ff4aeadb2&domain = www.mydomain.com&relation = parent&error = unknown_user。 请求访问的框架将“document.domain”设置为“facebook.com”,但是访问的框架没有。 两者都必须将“document.domain”设置为相同的值以允许访问。 xd_arbiter.php:18 不安全的JavaScript尝试访问来自带有URL的框架的URL http://www.mydomain.com/control/myfacebookapp/ http://static.ak.facebook.com/connect/xd_arbiter.php?version=18#cb= f2e4fe7b … os.com%2Ff4aeadb2&domain = www.mydomain.com&relation = parent&error = unknown_user。 请求访问的框架将“document.domain”设置为“facebook.com”,但是被访问的框架没有。 两者都必须将“document.domain”设置为相同的值以允许访问。 xd_arbiter.php:18 2.当我尝试http url( http://apps.facebook.com/myfbappnamespace/ )时,控制台显示的错误是: 不安全的JavaScript尝试从URL http://apps.facebook.com/myfbappnamespace/从具有URL的帧访问帧https://s-static.ak.facebook.com/connect/xd_arbiter.php?version=18#channel= … F控制%2Ffacebookappchannelurl%3Ffb_xd_fragment%23xd_sig%3Df23e84e85c%26。 请求访问的帧具有“https”的协议,被访问的帧具有“http”的协议。 协议必须匹配。 现在,当我login到我的fb帐户,看看这些错误发生了什么,他们走了,有时只是有时。 我知道我在查询中使用“大部分时间”和“有时”,但这正是我所遇到的情况。 […]

在IE中调用jQuery ajax调用“无传输”错误

我需要使用四方API来search场地。 当然这是跨域的。 它在Firefox中没有任何问题,但在Internet Explorer(我已经testing过7,8,9)。 我的JavaScript代码如下所示: searchVenues: function(searchQuery) { $.ajax({ url: 'https://api.foursquare.com/v2/venues/search', data: { sw: bound_south_west, ne: bound_north_east, query: searchQuery.query, oauth_token: FSQ_OAUTH_TOKEN, limit: 25, intent: 'browse', v: 20120206 }, cache: false, dataType: 'json', success: function(data) { displayResults(data, searchQuery.query); }, error: function(xhr, status, errorThrown) { console.log(errorThrown+'\n'+status+'\n'+xhr.statusText); } }); } 在Firefox中,它完美地显示收到的数据。 在Internet Explorer中,它在控制台上login: No Transport Error Error 我该怎么办?

如何在node.js的express.js框架中启用跨源资源共享(CORS)

我正在尝试在node.js中构build一个支持跨域脚本的Web服务器,同时仍然从公共目录提供静态文件。 我正在使用express.js,并不确定如何允许跨域脚本( Access-Control-Allow-Origin: * )。 我看到这个post ,我没有find有用的。 var express = require('express') , app = express.createServer(); app.get('/', function (req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Headers", "X-Requested-With"); next(); }); app.configure(function () { app.use(express.methodOverride()); app.use(express.bodyParser()); app.use(app.router); }); app.configure('development', function () { app.use(express.static(__dirname + '/public')); app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); app.configure('production', function () { var oneYear = […]

CORS不工作的PHP

我正试图通过CORS将表单数据从www.siteone.com发布到www.sitetwo.com。 我的ajax代码是这样的: <script> $(document).ready(function(){ $("#submit").live('click',function() { var url = "http://www.sitetwo.com/cors.php"; var data = $('#form').serialize(); jQuery.ajax({ url : url, type: "POST", data : $('#form').serialize(), }).done(function(response){ alert(response); }).fail(function(error){ console.log(error.statusText); }); return false; }); }); </script> www.sitetwo.com上的cors.php文件如下: <?php header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: POST, GET, OPTIONS'); echo "hai"; ?> 但仍然存在Access-control-Allow-Origin错误。 抛出的错误是这样的: XMLHttpRequest cannot load http://www.sitetwo.com/cors.php. Origin http://www.siteone.com is not allowed […]

jQuery跨域iframe脚本

我正在尝试访问加载外部URL的iframe的DOM。 当然,由于跨域的安全性,我得到了“权限被拒绝”的错误。 我怎样才能做这个工作? 我看到使用json完成了一些操作(但是我无法从外部源获取jsonstring)以及使用HTML5 postmessage完成的操作。 你可以看到它住在: http : //jsfiddle.net/QPBvJ/ 代码是: $(document).ready(function(){ $('#get').live('click', function() { var currentIFrame = $('#frameDemo'); currentIFrame.contents().find("a").css("background-color","#BADA55"); alert ("done") }); }); <iframe src="http://api.jquery.com/" width="80%" height="600" id='frameDemo'></iframe> <button id="get">Get</button> 最简单的方法是什么? 谢谢

Jquery $ .ajax在跨域调用的IE中失败

我正在使用$.ajax做跨域请求。 它适用于Firefox和Chrome浏览器,但不会在IE 7或8上发出呼叫。谁能告诉我以下有什么问题? 我已经使用JSON和JSONP(我停止使用,由于一些自定义的限制)。 我已经在我的网站上使用Allow-access-control-origin头。 (如果没有这些,Chrome和Firefox并没有提出成功的请求。) 我已经试过https://developer.mozilla.org/en/http_access_control 码: $.ajax({ type: 'GET', url: "http://anotherdomain.com/Service/GetControl?id=" + zoneID, cache: false, contentType: "application/x-www-form-urlencoded", async: false, beforeSend: function (request) { //alert('before send'); //request.setRequestHeader("X-Requested-With", "XMLHttpRequest"); //request.setRequestHeader("X-PINGOTHER", "pingpong"); } , success: function (data, status) { //alert("Data returned :" + data); //alert("Status :" + status); if (status == "success" && data != "") […]

Access-Control-Allow-Origin头文件如何工作?

显然,我完全误解了它的语义。 我想到了这样的事情: 客户端从http:// siteA下载JavaScript代码MyCode.js – 来源 。 MyCode.js的响应头包含Access-Control-Allow-Origin:http:// siteB ,我认为这意味着MyCode.js被允许对站点B进行跨源引用。 客户端触发MyCode.js的一些function,而这些function反过来向http:// siteB发送请求,尽pipe它们是跨域请求,但应该没问题。 那么,我错了。 这根本就不行。 因此,我已经阅读了跨源资源共享,并尝试在w3c推荐中阅读跨源资源共享 有一件事是肯定的 – 我仍然不明白我该如何使用这个标题。 我完全控制了站点A和站点B.如何启用从站点A下载的JavaScript代码以使用此标头访问站点B上的资源? PS 我不想使用JSONP。