Si mund ta aktivizoni CORS në mënyrë që të mund të përdorni një portë të personalizuar AWS API nga jQuery?
Unë kam ekspozuar një funksion të thjeshtë Python Lambda përmes një API Gateway për të kërkuar të dhënat e përdoruesit dhe po përpiqem të aksesoj pikën e tij fundore me jQuery si:
$.ajax({
method: 'GET',
url: 'https://slkdfjsl.execute-api.us-east-1.amazonaws.com/myapi/username?_='+new Date().getTime(),
headers: {
Authorization: authToken
},
data: {},
contentType: 'application/json',
success: function(result){
//do stuff
}
});
Ndonjëherë, kjo funksionon në mënyrë të përsosur. Ndonjëherë, unë marr gabimin:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://slkdfjsl.execute-api.us-east-1.amazonaws.com/myapi/username?_=1606336278598 (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
çfarë do ta shkaktonte këtë?
Ajo që nuk e kuptoj është natyra jo-deterministe e kësaj. Përgjigje për pyetje të ngjashme kanë shpjeguar se mund t'ju duhet të shtoni:
async: true,
dataType: 'jsonp',
crossDomain: true,
në thirrjen ajax() për të mundësuar aksesin ndërmjet domeneve, por kjo nuk do të shpjegonte pse kodi pa këtë funksionon shumicën e kohës.
Provova t'i shtoja ato opsione, dhe kjo e prish plotësisht atë 100% të kohës, duke më dhënë një gabim të paautorizuar 401 çdo herë.
A ka ndonjë mënyrë për ta rregulluar këtë në kodin tim, apo është potencialisht një gabim me zbatimin e AWS API Gateway?