我决定使用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"的解决方案。谢谢你的回答。
也许这就是您想要的http://pub.dartlang.org/packages/jsonp
在Dart的官方文档中,提到了两种跨域资源访问方法。
一种是设置CORS标头。如果您可以控制服务器端,那么设置CORS头是最方便的。
另一种是使用JSONP。但正如你所说的,这有点太离谱了。
注意有一个打开的错误:(2014年1月9日)https://code.google.com/p/dart/issues/detail?id=15992