没有服务器控制的跨域请求

时间:2013-11-21 10:04:21

标签: cross-domain dart

我决定使用Dart处理webApp来学习它,并希望看到它的传播。我今天面临的问题如下:

我使用HttpRequest发出跨域请求,并且由于api没有发送'Access-Control-Allow-Origin'标头,我最终得到一个错误:

    XMLHttpRequest cannot load https://api.eveonline.com/account/APIKeyInfo.xml.aspx?keyID=vide&vCode=vide&. No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'http://127.0.0.1:3030' is therefore not allowed access. 
Instance of '_XMLHttpRequestProgressEvent@0x3918afae'

我发现了一些与该问题相关的问题,但没有真正的解决方案。我不想将服务器端应用程序用作代理。我读到jquery有一个解决方案,允许在响应中没有“Control-Allow-Origin”的跨域请求,但我宁愿不使用jquery。

如果你们中的任何人有解决方案或线索,那么哪里可以找到一个很棒的解决方案!

编辑:我终于在php中构建了一个小代理,即使我更喜欢更“dartian”的解决方案。谢谢答案。

3 个答案:

答案 0 :(得分:1)

也许这就是你要找的http://pub.dartlang.org/packages/jsonp

答案 1 :(得分:1)

在Dart的官方文档中,提到了两种跨域资源访问方式。

一个是设置CORS标头。如果您可以控制服务器端,则设置CORS标头是最方便的。

另一个是使用JSONP。但正如你所说,它有点太hacky。

答案 2 :(得分:1)

请注意有一个漏洞:(9月1日至14日) https://code.google.com/p/dart/issues/detail?id=15992