Skip to content

Commit 6dfb339

Browse files
Merge pull request #49 from pingidentity/ie11_fixes
Fix issues seen in IE11
2 parents bad64cb + 3cfc149 commit 6dfb339

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

src/index.js

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -520,7 +520,7 @@ export default class AuthnWidget {
520520
postIdVerificationRequired() {
521521
document.getElementById('copy')
522522
.addEventListener('click', this.copyCode);
523-
523+
524524
this.pollCheckGet(this.store.getStore().verificationCode, 5000);
525525
}
526526

@@ -554,8 +554,8 @@ export default class AuthnWidget {
554554
let result = await fetchUtil.postFlow(this.flowId, 'poll', '{}');
555555
let newState = await result.json();
556556

557-
let pollAgain =
558-
(newState.status === 'ID_VERIFICATION_REQUIRED') &&
557+
let pollAgain =
558+
(newState.status === 'ID_VERIFICATION_REQUIRED') &&
559559
(newState.verificationCode === currentVerificationCode);
560560

561561
if (!pollAgain) {
@@ -569,11 +569,11 @@ export default class AuthnWidget {
569569
}, timeout)
570570
}
571571
}
572-
572+
573573
makeIdVerificationErrorMessage(errorDetails) {
574574
var errorMessage = '';
575575

576-
errorDetails.forEach(errorDetail =>
576+
errorDetails.forEach(errorDetail =>
577577
{
578578
if (errorMessage === '') {
579579
errorMessage = errorDetail.userMessage
@@ -658,9 +658,18 @@ export default class AuthnWidget {
658658
let formElement = this.getForm();
659659
if (formElement) {
660660
let formData = new FormData(formElement);
661+
let convertedData = {};
661662
let object = {};
662663

663-
for(let key of formData.keys()) {
664+
// Convert formData to a map. IE11 has incredibly limited support for the FormData type and corresponding methods.
665+
let formDataEntries = formData.entries(), formDataEntry = formDataEntries.next(), pair;
666+
while (!formDataEntry.done) {
667+
pair = formDataEntry.value;
668+
convertedData[pair[0]] = pair[1];
669+
formDataEntry = formDataEntries.next();
670+
}
671+
672+
for(let key in convertedData) {
664673
let values = formData.getAll(key);
665674
if(this.isMultiValueField(formElement, key))
666675
object[key] = values;

0 commit comments

Comments
 (0)