2

我尝试打印

| req |
req := XMLHttpRequest new.
req open: 'GET' url: 'http://www.stackoverflow.com/' asynchronous: false.
req send: ''.
req responseText

调试器告诉我

[Exception... "Failure" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location:
"JS frame ::   http://amber-lang.net/amber/js/boot.js :: callJavaScriptMethod ::
 line 651" data: no]

这发生在http://amber-lang.net/上当前 amber IDE 的工作区中

笔记:

我已经翻译了 JavaScript 消息

req.open("GET", url, false); 

根据http://amber-lang.net/documentation.html#JSObjectProxy中注明的消息转换规则

SLAks 回答后更新

下面的代码片段

| req |
req := XMLHttpRequest new.
req open: 'GET' url: 'http://amber-lang.net/' asynchronous: false.
req send: ''.
req responseText 

在从http://amber-lang.net打开的 IDE 中执行它时确实有效。

答案是

'<!DOCTYPE html>
<html>
  <head>
    <title>Amber Smalltalk</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <meta name="author" content="Nicolas Petton" />

 ....
4

1 回答 1

2

出于安全原因,您不能使用 AJAX 从另一个域读取。
(除非它明确允许你)

这称为同源策略

于 2013-08-27T18:00:04.400 回答