5

我正在构建一个对 NodeJS 服务器执行 HTTP 请求的应用程序,但是当我执行 HTTP 请求时,结果如下:

Access to XMLHttpRequest at 'http://127.0.0.1:8000/' from origin 'http://127.0.0.1:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Uncaught (in promise) Error: XMLHttpRequest error.
    dart:sdk_internal 41864:30                                    get current
package:http/src/packages/http/src/browser_client.dart 84:22  <fn>
dart:sdk_internal 99587:96                                    <fn>


    at Object.dart.createErrorWithStack (dart_sdk.js:4617)
    at Object.async._rethrow (dart_sdk.js:28723)
    at async._AsyncCallbackEntry.new.callback (dart_sdk.js:28719)
    at Object.async._microtaskLoop (dart_sdk.js:25352)
    at async._startMicrotaskLoop (dart_sdk.js:25358)
    at dart_sdk.js:25433

这是我用来发出 HTTP 请求的代码'package:http/http.dart' as http;

void requestGet(String endpoint, Callback cb) async {
    return await http.get(Uri.encodeFull(url + endpoint),
        headers: {"Accept": "application/json"}).then((http.Response response) {
      print(response.body);
    });
  }

  void requestPost(String endpoint, Map data, Callback cb) async {
    return await http.post(Uri.encodeFull(url + endpoint),
        body: data,
        headers: {"Accept": "application/json"}).then((http.Response response) {
      print(response.body);
    });
  }
4

2 回答 2

5

通过在我的 NodeJS 服务器中启用 CORS 解决了重新保护 HTTP 请求的问题,这里是文档。

于 2019-08-04T09:28:54.707 回答
0

如果您使用的是 PHP。将以下代码添加到您的 .htaccess 文件(位于根文件夹中)

<ifModule mod_headers.c>
    SetEnvIf Origin "http(s)?://(www.)?(localhost:CHANGE_THIS_WITH_PORT_NUMBER|somedomain.com)$" AccessControlAllowOrigin=$0
    Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
    Header always set Access-Control-Allow-Methods: "GET,POST,PUT,DELETE,OPTIONS"
</ifModule> 
于 2022-02-25T17:30:47.160 回答