Questions tagged «cross-domain»

跨域是指在其托管域/ Web服务器外部进行通信的Web应用程序。这可以是对其他服务器的网络请求,也可以是与由组成同一网页的不同域提供的DOM组件共享数据的形式。

4
从jquery $ .ajax到angular $ http
我有一段可以很好地跨源工作的jQuery代码: jQuery.ajax({ url: "http://example.appspot.com/rest/app", type: "POST", data: JSON.stringify({"foo":"bar"}), dataType: "json", contentType: "application/json; charset=utf-8", success: function (response) { console.log("success"); }, error: function (response) { console.log("failed"); } }); 现在,我试图将其转换为Angular.js代码,但没有成功: $http({ url: "http://example.appspot.com/rest/app", dataType: "json", method: "POST", data: JSON.stringify({"foo":"bar"}), headers: { "Content-Type": "application/json; charset=utf-8" } }).success(function(response){ $scope.response = response; }).error(function(error){ $scope.error = error; …


15
Firefox尽管标头却“跨域请求被阻止”
我正在尝试提出一个简单的跨域请求,而Firefox始终通过此错误阻止它: 跨域请求被阻止:同源策略禁止读取[url]处的远程资源。可以通过将资源移至同一域或启用CORS来解决此问题。[网址] 它可以在Chrome和Safari中正常运行。 据我所知,我已经在PHP上设置了所有正确的标头,以使其正常工作。这是我的服务器响应的内容 HTTP/1.1 200 OK Date: Mon, 23 Jun 2014 17:15:20 GMT Server: Apache/2.2.22 (Debian) X-Powered-By: PHP/5.4.4-14+deb7u8 Access-Control-Allow-Origin: * Access-Control-Allow-Methods: GET, POST, OPTIONS Access-Control-Allow-Headers: Content-Type Access-Control-Request-Headers: X-Requested-With, accept, content-type Vary: Accept-Encoding Content-Length: 186 Content-Type: text/html 我尝试使用Angular,jQuery和基本的XMLHTTPRequest对象,如下所示: var data = "id=1234" var request = new XMLHttpRequest({mozSystem: true}) request.onload = …


5
IE中出现jQuery ajax调用时出现“无传输”错误
我需要使用foursquare API搜索场所。当然,它是跨域的。 它在Firefox中没有任何问题,但是在Internet Explorer中(我已经测试过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中,它登录控制台: No …


7
在Firefox中禁用跨域Web安全
在Firefox中,我该如何做相当于--disable-web-security在Chrome中。这已经发布了很多,但从来没有一个真正的答案。大多数都是指向附件的链接(其中一些链接在最新的Firefox中不起作用或根本不起作用),并且“您只需要在服务器上启用支持”即可。 这是暂时的测试。我知道安全隐患。 我无法在服务器上打开CORS,尤其是永远无法允许localhost或类似主机。 标志,设置或其他东西比插件要好得多。我也尝试过:http : //www-jo.se/f.pfleger/forcecors,但是一定有问题,因为我的请求返回为完全空,但Chrome中的相同请求可以返回。 同样,这仅用于测试,然后再推向允许范围内的产品。

11
Chrome中的AJAX发送选项而不是GET / POST / PUT / DELETE吗?
我正在工作一个内部Web应用程序。在IE10中,请求工作正常,但在Chrome中,所有AJAX请求(很多)都是使用OPTIONS发送的,而不是我提供的任何已定义方法。从技术上讲,我的要求是“跨​​域”。该站点位于localhost:6120上,我向AJAX发出请求的服务位于57124上。此关闭的jquery错误定义了该问题,但不是真正的解决方法。 如何在ajax请求中使用正确的http方法? 编辑: 这在每页的文档加载中: jQuery.support.cors = true; 每个AJAX的构建方式都类似: var url = 'http://localhost:57124/My/Rest/Call'; $.ajax({ url: url, dataType: "json", data: json, async: true, cache: false, timeout: 30000, headers: { "x-li-format": "json", "X-UserName": userName }, success: function (data) { // my success stuff }, error: function (request, status, error) { // my error …

8
如何在node.js的express.js框架中启用跨域资源共享(CORS)
我正在尝试在node.js中构建Web服务器,该服务器将支持跨域脚本编写,同时仍从公共目录中提供静态文件。我正在使用express.js,但我不确定如何允许跨域脚本(Access-Control-Allow-Origin: *)。 我看到了这篇文章,但对我没有帮助。 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 …

5
如何发送正确的授权标头以进行基本身份验证
我正在尝试从我的API发布数据,但是我无法通过基本身份验证。 我尝试: $.ajax({ type: 'POST', url: http://theappurl.com/api/v1/method/, data: {}, crossDomain: true, beforeSend: function(xhr) { xhr.setRequestHeader('Authorization', 'Basic [REDACTED]'); } }); 我的服务器配置响应是: response["Access-Control-Allow-Origin"] = "*" response["Access-Control-Allow-Methods"] = "POST" response["Access-Control-Max-Age"] = "1000" response["Access-Control-Allow-Headers"] = "*" 我得到的标题是: 请求标题 OPTIONS /api/v1/token-auth/ HTTP/1.1 Host: theappurl.com Connection: keep-alive Access-Control-Request-Method: POST Origin: http://127.0.0.1:8080 User-Agent: Mozilla/5.0 (X11; Linux x86_64) …

17
跨子域的PHP会话
我正在尝试设置以下内容: auth.example.com sub1.example.com sub2.example.com 如果用户访问sub1.example.com或sub2.example.com且他们尚未登录,则他们将被重定向到auth.example.com并可以登录。 sub1.example.com和sub2.example.com是两个独立的应用程序,但使用相同的凭据。 我尝试在php.ini中设置以下内容: session.cookie_domain = ".example.com" 但它似乎并未将信息从一个域传递到另一个域。 [编辑] 我尝试了以下方法: sub1.example.com/test.php session_set_cookie_params(0, '/', '.example.com'); session_start(); print session_id() . "<br>"; $_SESSION['Regsitered'] = 1; echo '<a href="http://auth.example.com/test.php">Change Sites</a>' auth.example.com/test.php session_set_cookie_params(0, '/', '.example.com'); session_start(); print session_id() . "<br>"; $_SESSION['Checked'] = 1; print_r($_SESSION); 会话ID完全相同,但是当我转储$_SESSION变量时,它不会显示两个键,而不会显示我在每个域下设置的任何键。

10
为什么canvas.toDataURL()抛出安全异常?
我睡眠不足吗?以下代码 var frame=document.getElementById("viewer"); frame.width=100; frame.height=100; var ctx=frame.getContext("2d"); var img=new Image(); img.src="http://www.ansearch.com/images/interface/item/small/image.png" img.onload=function() { // draw image ctx.drawImage(img, 0, 0) // Here's where the error happens: window.open(frame.toDataURL("image/png")); } 抛出此错误: SECURITY_ERR: DOM Exception 18 这是绝对不可能的!有人可以解释一下吗?

5
crossorigin属性的目的...?
在图像和脚本标签中。 我的理解是您可以访问其他域上的脚本和图像。那么何时使用此属性? 当您想限制其他人访问脚本和图像的能力时,是这种情况吗? 图片: https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/img#attr-crossorigin 脚本: https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/script

2
同一域上的CORS错误?
我现在遇到一个奇怪的CORS问题。 这是错误消息: XMLHttpRequest cannot load http://localhost:8666/routeREST/select?q=[...] Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin 两台服务器: localhost:8666 / routeREST /:这是一个简单的Python Bottle服务器。 localhost:8080 /:我在其中运行Javascript应用程序的Python simpleHTTPserver。这个应用程式正在上方的伺服器执行Ajax要求。 有什么问题的想法吗? 编辑: 而且...港口是问题所在。感谢您的回答:) 如果有人也在使用Python瓶服务器,则可以按照本文中给出的答案解决CORS问题: Bottle Py:为jQuery AJAX请求启用CORS

9
跨网域iframe调整大小
如何从其他域调整iframe的大小 -编辑 向下滚动一些解决方案..或阅读如何不这样做:D 经过数小时的代码黑客攻击后,得出的结论是,iframe内部的任何内容都无法访问,即使是在我的域中呈现的滚动条也是如此。我尝试了许多技巧都无济于事。 为了节省您的时间,甚至不要走这条路,只需使用sendMessages进行跨域通信。 我使用了HTML <5的插件-进入底部找到一个好例子:) 过去几天,我一直在尝试将iframe集成到网站中。这是一个短期解决方案,而另一方正在开发和API(可能要花费数月的时间...),并且因为这是短期解决方案,所以我们确实想使用easyXDM-我可以访问其他域,但要求他们这样做非常困难按原样添加p3p标头..... 3个iframe 我找到的最接近的解决方案是3个iframe,但考虑到了chrome和safari,所以我不能使用它。 镀铬 http://css-tricks.com/examples/iFrameResize/crossdomain.php#frameId=frame-one&height=1179 测量滚动条 我找到了另一篇有关如何使用scrollheight尝试调整表单大小的文章。理论上它可以正常工作,但是我无法使用iframe滚动高度正确应用它。 document.body.scrollHeight 那显然使用了主体的高度(无法访问这些属性100%是基于客户端显示的Canvaz而非x域文档的高度) 我尝试使用jquery来获取iframe的高度 $('#frameId').Height() $('#frameId').clientHeight $('#frameId').scrollHeight 返回不同的Chrome值,即-或根本没有任何意义。问题是框​​架内的所有内容都被拒绝-甚至滚动条... 计算样式 但是,如果我检查并在iframe的chrome中添加元素,它就会很傻地向我显示iframe内的文档尺寸(使用jquery x-domain获取iframe.heigh-访问被拒绝),在计算出的CSS中没有任何内容 现在,chrome如何计算呢?(编辑浏览器使用其内置的渲染引擎重新渲染页面,以计算所有这些设置-但未附加在任何位置,以防止跨域欺诈。) HTML4 我阅读了HTML4.x的规范,它说那里应该有通过document.element公开的只读值,但是通过jquery拒绝了它的访问 代理框架 我采用了将网站代理回去并计算确定的方法,直到用户通过iframe登录并且代理获取登录页面而非实际内容为止。另外对于某些两次调用该页面是不可接受的 http://www.codeproject.com/KB/aspnet/asproxy.aspx http://www.johnchapman.name/aspnet-proxy-page-cross-domain-requests-from-ajax-and-javascript/ 重新呈现页面 我没有走那么远,但是有jscript引擎可以查看源代码并根据源文件重新呈现页面。但这需要破解这些jscript ..对于商业实体而言,那不是理想的情况...以及一些涉及纯Java小程序或服务器端渲染的发票 http://en.wikipedia.org/wiki/Server-side_JavaScript http://htmlunit.sourceforge.net/ <-java而不是jscript http://maxq.tigris.org/ 编辑09-2013 更新 所有这些都可以通过HTML5套接字完成。但是easyXDM对于非HTML5投诉页面来说是很好的后备。 解决方案1很好的解决方案! 使用easyXDM 在您的服务器上,您以 <html> <head> <script src="scripts/easyXDM.js" type="text/javascript"></script> <script …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.