我最近不得不设置Access-Control-Allow-Origin为*能够进行跨子域ajax调用.
现在我不禁觉得我的环境存在安全风险.
如果我做错了,请帮助我.
我已经使用SLIM PHP框架创建了一个基本的RESTful服务,现在我正在尝试连接它,以便我可以从Angular.js项目访问该服务.我已经读过Angular支持开箱即用的CORS,我需要做的就是添加这一行:Header set Access-Control-Allow-Origin "*"到我的.htaccess文件.
我已经完成了这个并且我的REST应用程序仍在运行(来自坏的.htaccess没有500内部服务器错误)但是当我尝试从test-cors.org测试它时它会抛出一个错误.
Fired XHR event: loadstart
Fired XHR event: readystatechange
Fired XHR event: error
XHR status: 0
XHR status text:
Fired XHR event: loadend
Run Code Online (Sandbox Code Playgroud)
我的.htaccess文件看起来像这样
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /index.php [QSA,L]
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
Run Code Online (Sandbox Code Playgroud)
是否还有其他东西需要添加到我的.htaccess才能使其正常工作或是否有另一种方法在我的服务器上启用CORS?
我正在构建一个对 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.
Run Code Online (Sandbox Code Playgroud)
和
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
Run Code Online (Sandbox Code Playgroud)
这是我用来发出 HTTP 请求的代码'package:http/http.dart' as http;: …
我XMLHttpRequest error.在对我的 API-AWS API 网关进行 HTTP post 调用时遇到此错误。我当前的流程是 Flutter web -> API gateway -> lambda -> rds。
我知道已经有几个与此相关的问题,例如,但正如答案之一所建议的,添加一些标头以响应 lambda。但这对我不起作用。
经过一些研究,我发现问题与 CORS 有关。现在禁用 chrome 中的 cors 是一个临时修复,并在这个问题中建议。
我在研究后发现的一些其他解决方案建议在我的 API 中启用 cors,并且在前端部分我添加了标头,但它们都不起作用。
fetchData() async {
String url =
"myUrl";
Map<String, String> headers = {
"Access-Control-Allow-Origin": "*", // Required for CORS support to work
};
String json = '{"emailId":"emailId"}';
http.Response response =
await http.post(Uri.parse(url), headers: headers, body: json);
print(response.body);
return response.body;
}
Run Code Online (Sandbox Code Playgroud)
解决这个问题的正确方法是什么?
amazon-web-services aws-lambda aws-api-gateway flutter flutter-web