【问题标题】:Creating a web client in Dart在 Dart 中创建 Web 客户端
【发布时间】:2013-12-24 12:34:51
【问题描述】:

我从 Dart 开始,我想创建一个应用程序来向网页发出 http 请求 并可能将其转换为 chrome 扩展,这一切都使用 Dart。

我遇到的问题是我不知道如何向它发送 HttpRequest 页面“http://www.1001tracklists.com/”检索html内容然后整理 我的应用程序中的所有会话都包含 html 和 css。

我所做的只是创建一个正常的 HttpRequest,但由于 CORS 请求而收到错误,我不知道如何解决标头问题。

【问题讨论】:

    标签: google-chrome-extension dart httprequest


    【解决方案1】:

    服务器需要进行修改以合并 CORS 标头,以允许远程请求从其服务器查询资源。

    大多数(全部?)现代浏览器会自动合并 CORS,因此来自它们的任何请求都会自动在请求中创建 Origin: 标头。如果接收服务器没有与您的 Origin 匹配的 Access-Control-Allow-Origin: 标头,则请求将失败。

    另一种方法可能是让您的服务器上的脚本查询数据,然后轮询您自己的服务器以获取数据。有关详细信息,请参阅CORS Specification

    【讨论】:

    • 虽然在一般情况下是正确的,但与 Google Chrome Extension 相关的问题会极大地改变事情(看看 Zig Mandel's answer)。
    【解决方案2】:

    使用 chrome 扩展程序,您只需在清单中说明需要访问的网址即可绕过 cors。在 chrome 扩展中查找它。见:http://developer.chrome.com/extensions/declare_permissions.html

    【讨论】:

      【解决方案3】:

      如果您可以控制服务器端,则需要如上所述添加 CORS 标头,或者设置 apache/nginx 作为反向代理为您执行此操作,或者您需要访问 CORS 代理服务器。

      查看here 看看这是否对您有帮助。

      【讨论】: