Muszę użyć biblioteki JavaScript i mieć do niej takie odwołania:
<script type="text/javascript" src="https://js.authorize.net/v1/Accept.js"></script>
Jednak pojawia się komunikat o błędzie:
XMLHttpRequest nie można załadować https://js.authorize.net/v1/AcceptCore.js. Żądany nagłówek „Access-Control-Allow-Origin” nie występuje ratunek.
Sprawdziłem ten problem i wypróbowałem różne fragmenty kodu i pomysłów, ale to nie zadziałało. Używam ASP.NET, formularzy internetowych i c #. Próbowałem dodać inny kod do mojego pliku web.config, na przykład
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*"/>
</customHeaders>
</httpProtocol>
</system.webServer>
i
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
</system.webServer>
Próbowałem również zalecić instalację Corsa, ale używam frameworka 4.0. Cors wymaga wersji 5.0 i nie można jej zainstalować.
Odpowiedzi:
1 dla odpowiedzi № 1Skrypt, który ładujesz, właśnie się odwraca i używa XMLHttpRequest
załadować kolejny (również z js.authorize.netto); to żądanie zostało odrzucone, ponieważ pochodzenie twojej strony nie jest dozwolone. Wygląda na coś w rodzaju autoryzacji, która uniemożliwia pobieranie JS z nieautoryzowanych źródeł.
Nic Ty po swojemu zmieniasz reguły CORS na stronie js.authorize.net. To ten serwer, js.authorize.net, musi zezwolić twojemu pochodzeniu na wykonanie żądania.
Będziesz musiał współpracować z osobami stojącymi za js.authorize.net, aby uzyskać dostęp.
1 dla odpowiedzi nr 2
Być może zostało to dodane od czasu pierwotnego postu, ale dla innych, Authorize.net rozwiązuje ten problem na stronie Accept.js w swojej witrynie.
Połączyć: https://developer.authorize.net/api/reference/features/acceptjs.html
UWAGA: W przypadku debugowania może pojawić się błąd XMLHttpRequest w konsoli JS. Wynika to z faktu, że naszej biblioteki przetwarzania podstawowego nie można wywoływać bezpośrednio i jest to oczekiwane ostrzeżenie dotyczące bezpieczeństwa.
Mimo błędu wszystko nadal działa.