square pos карта форма за плащане интеграция в ajax

Нов съм в интегрирането на формуляра за квадратно плащане. интегрирам формуляра според документацията на https://docs.connect.squareup.com/articles/adding-payment-form .когато вграждам формуляра на отделна страница, той работи добре, но когато зареждам скриптовете на формуляра в ajax, той показва грешката " ReferenceError: SqPaymentForm не е дефиниран ". моля някой да ми предложи начин за вграждане на формуляра в ajax.


person Anand    schedule 06.04.2017    source източник


Отговори (1)


Проблемът тук е, че вероятно се опитвате да стартирате javascript на страницата (която има нещо като var paymentForm = new SqPaymentForm({... преди външната библиотека да се зареди.

Ако зареждате https://js.squareup.com/v2/paymentform асинхронно, ще трябва да отложите изпълнението на javascript на страницата, докато външната библиотека не се зареди. Можете да направите това чрез събития при зареждане или изчакване, докато страницата се зареди напълно (или много други начини, потърсете „отлагане на javascript след async“, но най-лесният начин би бил просто да заредите библиотеката синхронно.

person tristansokol    schedule 06.04.2017
comment
пробвах това function loadJavaScriptSync(filePath){ var req = new XMLHttpRequest(); req.open("GET", filePath, false); // 'false': synchronous. req.send(null); var headElement = document.getElementsByTagName("head")[0]; var newScriptElement = document.createElement("script"); newScriptElement.type = "text/javascript"; newScriptElement.text = req.responseText; headElement.appendChild(newScriptElement); } loadJavaScriptSync("https://js.squareup.com/v2/paymentform"); след това извиках var paymentForm = new SqPaymentForm сега в конзолата мрежова грешка. - person Anand; 07.04.2017
comment
получих и това Синхронният XMLHttpRequest в главната нишка е остарял поради вредното му въздействие върху изживяването на крайния потребител. За повече помощ xhr.spec.whatwg.org - person Anand; 07.04.2017
comment
Това, което правите, всъщност не е синхронно. Просто включете <script type="text/javascript" src="https://js.squareup.com/v2/paymentform"></script> в head на вашата страница - person tristansokol; 08.04.2017