【问题标题】:How to debug client side dart code in Dart editor without CORS如何在没有 CORS 的 Dart 编辑器中调试客户端 dart 代码
【发布时间】:2013-06-01 02:49:41
【问题描述】:

我有一个服务器/客户端项目,都是用 dart 编写的。现在我的服务器在端口1337 上启动,当我使用Run in dartium 运行我的客户端时,我的静态文件在端口3030 上提供服务,这允许我在Dart 编辑器中调试我的客户端代码。

问题是这会在使用AJAX 调用时导致CORS。我已正确设置我的服务器以接受其他来源(使用Access-Control-Allow-Origin),但例如,cookie 不会一起发送。

现在我想知道:有没有办法通过我的服务器(在 1337 上运行)提供我的文件,并且仍然可以在 dart 编辑器中调试客户端代码?

【问题讨论】:

  • 您是否尝试将HttpRequest 上的withCredentials 属性设置为true - 例如HttpRequest.getString(url, withCredentials:true)
  • 感谢 Zdeslav,这很有效(在设置正确的 Access-Control-Allow-OriginAccess-Control-Allow-Credentials 之后)。仍然想知道我的问题是否有具体答案。
  • 我不确定我是否理解。看来您可以执行客户端代码。我希望你也可以调试它。如果在某处设置断点会发生什么?

标签: dart cors dart-editor dartium


【解决方案1】:

我的理解是你可以调试,但真正的问题是由于缺少cookie,你没有从服务器取回预期的数据。

默认情况下,标准 CORS 请求不发送或设置任何 cookie。

为了在请求中包含cookies,除了设置服务器,你还需要指定withCredentials属性,例如:

HttpRequest.getString(url, withCredentials:true)...

您还需要设置服务器以提供Access-Control-Allow-Credentials 标头。

编辑:似乎另一个问题是您不想拥有 2 个服务器,每个服务器都服务于应用程序的不同部分。

在这种情况下,您可以将 DartEditor 配置为启动 URL,而不是文件。转到Run > Manage Launches 并添加使用指定的 URL 和源目录创建新的 Dartium 或 Dart2JS 启动。

另一个选项是选择 Run > Remote Connection 并附加到正在运行的浏览器或 Dart VM 实例。

警告:我没有尝试过这些选项,所以我不能告诉how stablethey are

【讨论】:

  • 感谢您的回答。它帮助我现在继续工作。但最终我想自己提供文件,就像在生产环境中一样,并且仍然能够在 dart 编辑器中进行调试。
  • 你的意思是,像附加到 Dartium 之类的东西?
  • 谢谢...正是我想要的。干杯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-10
  • 2022-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多