0

次のコードは Dartium では機能しますが、ブラウザーで JavaScript に変換すると機能しません。

import 'dart:html';

var getReq = "http://127.0.0.1:8080/programming-languages";

void main() {
  HttpRequest.getString(getReq).then((results) {
    query("#text").text = results;
  }).catchError((e) {
    print("Oops! Encountered $e");
  });
}

返されるエラーは次のとおりです。

ERROR: Instance of 'Interceptor'

私はJSON Web Serviceチュートリアルに従っています。完全なソースの git リポジトリはdartlang_json_webserviceです。

Dart SDK バージョン 0.7.2.1_r27268 を使用しています。

4

2 に答える 2

0

問題は、サーバーが動作していないCORSヘッダーを返すことです。

/**
 * Add Cross-site headers to enable accessing this server from pages
 * not served by this server
 * 
 * See: http://www.html5rocks.com/en/tutorials/cors/ 
 * and http://enable-cors.org/server.html
 */
void addCorsHeaders(HttpResponse res) {
  res.headers.add("Access-Control-Allow-Origin", "*, ");
  res.headers.add("Access-Control-Allow-Methods", "POST, GET, OPTIONS");
  res.headers.add("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
}

交換:

res.headers.add("Access-Control-Allow-Origin", "*, ");

と:

res.headers.add("Access-Control-Allow-Origin", "*");

動作します。詳細については、Origin が Access-Control-Allow-Originで許可されていないを参照してください。

于 2013-09-16T14:31:38.990 に答える