[英]No 'Access-Control-Allow-Origin' header with ExpressJS to local server
[英]DynamoDB Local Access-Control-Allow-Origin
我正在嘗試開發一個應用程序(例如,在http://whatever.dev上),該應用程序一旦投入生產,便會使用帶JavaScript(而非Node)的AWS DynamoDB。 目前,我們正在使用DynamoDB Local進行本地開發,而無需訪問AWS。
DynamoDB Local的問題在於,沒有從服務器發送回的提供的Access-Control-Allow-Origin標頭。
因此,如果我在whatever.dev上執行此操作:
var dynamodb = new AWS.DynamoDB({
accessKeyId: 'thisIsSomeInvalidKey',
secretAccessKey:'anEquallyInvalidSecret!',
region: 'us-east-1',
endpoint: 'http://whatever.dev:8000',
sslEnabled: false,
maxRetries: 5,
//logger: console
});
dynamodb.listTables(function(err, data) {
console.log(data)
});
這就是我得到的:
XMLHttpRequest無法加載what.dev:8000。 所請求的資源上沒有“ Access-Control-Allow-Origin”標頭。 因此,不允許訪問源“ whatever.dev”。
因此,從本質上講,我正在使用DynamoDB Local在本地進行開發,但由於無法獲得XHR津貼,因此無法連接到它。 有沒有辦法解決? 我可以在DynamoDB Local中修改某些內容以獲得正確的標頭嗎?
我的項目沒有Python / Java依賴項(它完全是前端,使用Backbone和RequireJS),因此使用它會很爛。
謝謝!
您可以使用-cors參數啟動DynamoDB Local。
-cors <arg> Enable CORS support for javascript against a
specific allow-list list the domains
serporated by , [use '*' for public access]
例如
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar --cors "*"
並可以在瀏覽器中打開帶有以下內容的html文件:
<html>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.1.14.min.js"></script>
<script>
var dynamodb = new AWS.DynamoDB({
accessKeyId: 'thisIsSomeInvalidKey',
secretAccessKey:'anEquallyInvalidSecret!',
region: 'us-east-1',
endpoint: 'http://localhost:8000',
sslEnabled: false,
maxRetries: 5,
});
dynamodb.listTables(function(err, data) {
console.log(data) // { TableNames: Array[0] }
});
</script>
</html>
希望有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.