当我通过浏览器单击AWS API网关POST方法URL时,我一直不断收到“缺少身份验证令牌”错误。我将“AUTH”设置为none,它通过Postman完全正常,但不是浏览器。问题是我正在使用swift来触发该方法,它似乎根本没有到达网关(没有登录CloudWatch),我不认为我的代码是错误的(或者可能是)。如果有人能够指出我的错误或解决这个问题,我会非常感激。
P.S。我的lambda函数工作得很好,我键入了正确的URL(例如代码中的一个)
这是我的代码:
func postNonceToServer(paymentMethodNonce: String) {
let paymentURL = URL(string: "https://example-url.us-east-1.amazonaws.com/prod/create-transaction")!
var request = URLRequest(url: paymentURL)
request.httpBody = "\(paymentMethodNonce)".data(using: String.Encoding.utf8)
request.httpMethod = "POST"
}
答案 0 :(得分:0)
这主要是因为CORS问题。
请在您的API网关中启用CORS,如下所示。启用CORS后,请重新部署API
如果您没有添加OPTIONS,请按照以下步骤操作(如果OPTIONS已经添加了CORS),
创建OPTIONS后启用CORS,如下所示
答案 1 :(得分:0)
在我看来,这应该是URL本身的一个问题。我能想到:
1-请确保通过将URL打印到控制台并将其粘贴到浏览器URL栏中来正确解析URL。 (我不知道swift)
2-确保“example-url”中包含“execute-api”,即在区域之前。
3-确保OPTIONS方法的AUTH为none。
祝你好运!答案 2 :(得分:0)
在端点上启用CORS后,我收到相同的错误消息:
{"message":"Missing Authentication Token"}
所有内容都已签出,但我始终收到该错误。要解决我的问题,我必须部署API。为此,请执行以下操作:
长话短说,在启用CORS后重新部署API。